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
168 downloads per month
Used in aki-txpr-macro
36KB
597 lines
aki-xcat
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
- you can install this into cargo bin path:
cargo install aki-xcat
- 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
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Dependencies
~8.5MB
~154K SLoC