#text #gzip #filter

bin+lib aki-xcat

concatenate files that are plain, gzip, xz and zstd

28 releases

0.2.1 Sep 15, 2025
0.2.0 Jul 31, 2025
0.1.36 Jun 19, 2024
0.1.35 Jan 11, 2023
0.1.19 Mar 22, 2021

#1532 in Text processing

Download history 9/week @ 2025-06-11 1/week @ 2025-06-25 132/week @ 2025-07-30 10/week @ 2025-08-06 23/week @ 2025-08-20 120/week @ 2025-09-10 38/week @ 2025-09-17 10/week @ 2025-09-24

168 downloads per month
Used in aki-txpr-macro

MIT/Apache

36KB
597 lines

aki-xcat

crate Docs Rust Version Apache2/MIT licensed Test ubu Test mac Test win

concatenate files that are plain, gzip, xz and zstd.

Features

  • concatenate files that are plain, gzip ... etc.
  • input files are decompressed by auto.
  • minimum support rustc 1.75.0 (82e1608df 2023-12-21)

Command help

aki-xcat --help
Usage:
  aki-xcat [options] [<file>...]

this is like a cat, zcat, xzcat, zstdcat, lz4cat and bzcat.
with no <file> or when <file> is -, read standard input.
automatic discovery file type: plain, gz, xz, zst, lz4 and bzip2.

Options:
  -b, --bin             binary mode
  -n, --number          output line number for each lines
  -f, --file-name       output file name for each lines
      --path-name       output path name for each lines

  -H, --help        display this help and exit
  -V, --version     display version information and exit

Argument:
  <file>         utf-8 encoded text file or binary file.
                 A compressed file of it by gzip, xz, zstd, lz4, bzip2.

Examples:
  You can simple use. Just arrange the files.
    aki-xcat file1 file2.gz file3.xz file4.zst file5.lz4 file6.bz2

Quick install

  1. you can install this into cargo bin path:
cargo install aki-xcat
  1. you can build debian package:
cargo deb

and install .deb into your local repository of debian package.

Examples

The input file used in this example looks like this:

cat fixtures/plain.txt

result output :

abcdefg
hijklmn
zcat fixtures/gztext.txt.gz

result output :

ABCDEFG
HIJKLMN

Example 1: simple concatenate

concatenate plain text file and gzip text file.

aki-xcat fixtures/plain.txt fixtures/gztext.txt.gz

result output :

abcdefg
hijklmn
ABCDEFG
HIJKLMN

Example 2: multi file formats

concatenate plain text file, gzip text file, xz text file, zstd text file, lz4 text file and bzip2 text file.

aki-xcat fixtures/plain.txt fixtures/gztext.txt.gz fixtures/xztext.txt.xz  fixtures/zstext.txt.zst fixtures/lz4text.txt.lz4 fixtures/bzip2text.txt.bz2

Example 3: output all line number

concatenate plain text file and gzip text file.

aki-xcat -n fixtures/plain.txt fixtures/gztext.txt.gz

result output :

     1  abcdefg
     2  hijklmn
     3  ABCDEFG
     4  HIJKLMN

Example 4: file name and line number

concatenate plain text file and gzip text file.

aki-xcat -n -f fixtures/plain.txt fixtures/gztext.txt.gz

result output :

"plain.txt"     1   abcdefg
"plain.txt"     2   hijklmn
"gztext.txt.gz"     1   ABCDEFG
"gztext.txt.gz"     2   HIJKLMN

Example 5: path name and line number

concatenate plain text file and gzip text file.

aki-xcat -n --path-name fixtures/plain.txt fixtures/gztext.txt.gz

result output :

"fixtures/plain.txt"     1  abcdefg
"fixtures/plain.txt"     2  hijklmn
"fixtures/gztext.txt.gz"     1  ABCDEFG
"fixtures/gztext.txt.gz"     2  HIJKLMN

Library example

See fn execute() for this library examples.

Changelogs

This crate's changelog here.

License

This project is licensed under either of

at your option.

Dependencies

~8.5MB
~154K SLoC