Simple OS Independent 'cat' Command-line Tool made in Python.
Project description
cat_win
Simple Command-line Tool made in Python
Explore the code »
Report Bug
·
Request Feature
Table of Contents
About The Project
This project copies the fundamental framework of the cat command-line tool from Linux and translates its features to an OS Independent program using Python.
Over time the project evolved in subject areas of other tools like 'echo', 'grep', 'ls', 'base64'.
Additionally it includes the feature to strip and reverse the content of any given file, make use of the standard-input, which enables cat piping into each other, generating the checksum of any file, converting decimal, hexadecimal and binary numbers within any text, and much more ...
Contrary to the name of the project it is of course possible to use cat_win on Linux or MacOS!
Made With
Getting Started
Prerequisites
- Using cat_win as a Python-Package demands a Python-Interpreter (>= 3.7).
- Using cat_win as an Executable (Windows only!) demands no prerequisites, hereby the stand-alone executable
catw.exe
is sufficient.
Installation
Simply install the python package (via PyPI-cat_win):
python -m pip install --upgrade cat_win[clip]
cat_win uses the pyperclip module by default. Should any problems occur, you can also use the pyperclip3 or pyclip module. In this case simply run:
python -m pip install --upgrade cat_win
and manually install the desired module yourself.
OR alternatively you can use the compiled version (Windows only
):
- Simply download the catw.exe file.
- Add the file path to your system-environment
PATH
-variables.
⚠️ You should never trust any executable file! Feel free to compile the package yourself (e.g. using PyInstaller).
You can verify the creation of catw.exe yourself by reading the source code, checking the origin of the file and validating the corresponding workflow used.
Usage
catw [FILE]... [OPTION]...
catw --help
⚠️ from v1.0.33 to v1.1.0 the entrypoint changes from
cat
tocatw
. If you wish to keep the old command, you will have to define an alias yourself.
Argument / Option | Description |
---|---|
-h, --help | show help message and exit |
-v, --version | output version information |
-d, --debug | show debug information |
-n, --number | number all output lines |
-l, --linelength | display the length of each line |
-e, --ends | display $ at the end of each line |
-t, --tabs | display TAB characters as ^I |
--eof, --eof | display EOF characters as ^EOF |
-u, --unique | suppress repeated output lines |
-b, --blank | hide empty lines |
-r, --reverse | reverse output |
-p, --peek | only print the first and last lines |
-s, --sum | show sum of lines |
-S, --SUM | ONLY show sum of lines |
-f, --files | list applied files |
-F, --FILES | ONLY list applied files and file sizes |
-g, --grep | only show lines containing queried keywords |
-i, --interactive | use stdin |
-o, --oneline | take only the first stdin-line |
-E, --ECHO | handle every following parameter as stdin |
-c, --clip | copy output to clipboard |
-m, --checksum | show the checksums of all files |
-a, --attributes | show meta-information about the files |
--dec, --DEC | convert decimal numbers to hexadecimal and binary |
--hex, --HEX | convert hexadecimal numbers to decimal and binary |
--bin, --BIN | convert binary numbers to decimal and hexadecimal |
--b64e, --b64e | encode the input to base64 |
--b64d, --b64d | decode the input from base64 |
--hexview, --HEXVIEW | display the raw byte representation in hexadecimal |
--binview, --binview | display the raw byte representation in binary |
--nc, --nocolor | disable colored output |
--nb, --nobreak | do not interrupt the output on queried keywords |
--nk, --nokeyword | inverse the grep output |
-R, --reconfigure | reconfigure the stdin and stdout with the parsed encoding |
--config, --config | change color configuration |
enc=X | set file enconding to X (default is utf-8) |
find=X | find/query a substring X in the given files |
match=X | find/query a pattern X in the given files |
trunc=X:Y | truncate file to lines X and Y (python-like) |
[a,b] | replace a with b in every line |
[a:b:c] | python-like string indexing syntax (line by line) |
Examples
📂 Images 📂
$ echo "Hello World :)" | catw -i [6:] | catw -i [::-1] -ln
> 1) [8] ): dlroW
$ cats --dec -nl
> >>> 12345
> 1) [53] 12345 {Hexadecimal: 0x3039; Binary: 0b11000000111001}
> >>> 54321
> 2) [55] 54321 {Hexadecimal: 0xd431; Binary: 0b1101010000110001}
> ...
Changelog
Take a look at the Changelog file.
License
This project is licensed under the MIT License - see the LICENSE file for details
Contact
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.