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 ...
It is of course possible to use cat_win on Linux or MacOS, aswell as Windows!
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 executables
catw.exe
(&cats.exe
) are 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.
On older Windows systems colored output may not be displayed correctly.
In this case you can try to fix the problem by installing the cat_win-package with the optional color-fix [cfix]
dependency.
This fix will use the colorama module
which you can also install after the fact yourself to patch the problem.
OR alternatively you can use the compiled version (Windows only
):
- Simply download the catw.exe file to handle filecontents.
- Download the cats.exe file to use the cat-shell (optional).
- Add the file path(s) 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.
cats [OPTION]...
cats --help
Argument / Option | Description | works in shell |
---|---|---|
-h, --help | show help message and exit | ✔ |
-v, --version | output version information | ✔ |
--debug, --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 | ❌ |
--sort, --sort | sort all lines alphabetically | ❌ |
-p, --peek | only print the first and last lines | ❌ |
-c, --clip | copy output to clipboard | ✔ |
-i, --interactive | use stdin | ❌ |
-o, --oneline | take only the first stdin-line | ✔ |
-E, --ECHO | handle every following parameter as stdin | ❌ |
-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 | ❌ |
--dot, --dotfiles | additionally query and edit dotfiles | ❌ |
-g, --grep | only show lines containing queried keywords or patterns | ✔ |
-G, --GREP | only show found and matched substrings | ✔ |
--nk, --nokeyword | inverse the grep output | ✔ |
--fp, --file-prefix | include the file in every line prefix | ❌ |
-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 | ✔ |
--eval, --EVAL | evaluate simple mathematical equations | ✔ |
--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 | ✔ |
--plain, --plain-only | ignore non-plaintext files automatically | ❌ |
--config, --config | change color configuration | ✔ |
-R, --R<stream> | reconfigure the std-stream(s) with the parsed encoding <stream> = 'in'/'out'/'err' (default is stdin & stdout) |
✔ |
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 (escape chars with '\') | ✔ |
[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 --eval --dec -nl
> >>> 0xF * 5
> 1) [41] 75 {Hexadecimal: 0x4b; Binary: 0b1001011}
> >>> ...
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.