aki-xcat

Crates.ioaki-xcat
lib.rsaki-xcat
version0.2.1
created_at2021-02-07 14:21:48.460507+00
updated_at2025-09-15 13:34:40.515562+00
descriptionconcatenate files that are plain, gzip, xz and zstd.
homepage
repositoryhttps://github.com/aki-akaguma/aki-xcat
max_upload_size
id351919
size153,659
(aki-akaguma)

documentation

README

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.

Commit count: 74

cargo fmt