xgrep: A grep for Excel (and CSV/TSV) files.
Project description
xgrep
Documentation
Can be found at https://xgrep.readthedocs.io
Example usage
To give an example of using xgrep, suppose you have an Excel file (example.xlsx)) with a
sheet that looks like this:
https://github.com/terrycojones/xgrep/tree/main/docs/source/images
You can download
example.xlsx
(or find it in the docs/source directory in the repo) if you want to try
the following commands.
Find cells based on a regular expression
Look for the regular expression 'Xia|radius|Jilin':
$ xgrep 'Xia|radius|Jilin' docs/source/example.xlsx
Note that the command-line output is all text. It is produced using the Table class of the wonderful rich package.
Display the row and column information
Add the row numbers (--rn) and Excel column (--ec) information from the
input Excel:
$ xgrep --rn --ec 'Xia|radius|Jilin' docs/source/example.xlsx
De-emphasize unmatched cells
If you don't care about the values in cells that were not matched, you can give a value to display instead:
$ xgrep -u . --rn --ec 'Xia|radius|Jilin' docs/source/example.xlsx
Only show matching columns
To exclude columns with no matching cells, you can show only matching columns
(--omc):
$ xgrep --omc --rn --ec 'Xia|radius|Jilin' docs/source/example.xlsx
Write CSV (or TSV)
The default output format is a
rich
Table. You can also
produce CSV, TSV, or Excel using the --format option:
$ xgrep --format csv 'Xia|radius|Jilin' docs/source/example.xlsx
If you use --format excel you will also need to give an output filename
using --out.
Usage
$ xgrep --help
Usage: xgrep [OPTIONS] PATTERN FILENAMES...
Command-line interface.
Options:
-o, --out FILE The output file. If not given, output is
written to standard out. Note that if the
--quiet (-q) options is given, no output is
written to the output file.
--header / --no-header Don't look for a header line. In this case,
text in what would otherwise be considered a
header can also be matched by the grep
pattern.
--skip INTEGER RANGE Skip this many rows at the start of the
input file(s). [x>=0]
--format [csv|excel|rich|tsv] The output format.
-c, --count Only print the number of matching lines.
--width INTEGER The width to use for --format rich tables.
-v, --invert Print non-matching lines.
-q, --quiet Do not show any output, just exit with a
status indiacting whether a match was found
(0) or not (1).
--only-matching-cols, --omc, --mco
Only show columns that have a matching cell.
-i, --ignore-case Ignore case while matching.
--color TEXT The highlight color.
-u, --unmatched TEXT The string to show for cells whose values do
not match. If not given, non-matching cells
are shown with their value (in which case
you will need to use the output color to see
matches).
--row-numbers, --rn Show row numbers.
--col-numbers, --cn Show column numbers.
--excel-cols, --ec Add Excel column labels to column names.
Filenames: [mutually_exclusive]
Whether to display names of matching files.
-H, --filenames-always, --fa Always print the name of matching files
(like grep -H).
-h, --no-filename, --nf Never print the name of matching files (like
grep -h).
--only-filename, --of Only print the names of matching files, not
their matched content.
--help Show this message and exit.
Todo
- Make it possible to specify a sheet (only works if there is one Excel file?).
- Adjust col names Row and File in case they're already present.
- Allow for processing multiple Excel files into individual sheets.
- Write tests for unequal numbers of cols.
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.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xgrep-0.2.4.tar.gz.
File metadata
- Download URL: xgrep-0.2.4.tar.gz
- Upload date:
- Size: 4.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
164de0ad86a8a811de7bcb048094d5ccd353ea551a82b11c456431eb7ca83f3f
|
|
| MD5 |
01b33c17350ae568b88ae7fc8ac4cd61
|
|
| BLAKE2b-256 |
8cb9b93b893f48cd0e22f2939cc78c502059f6e05ff1239dcb4737aff4b13404
|
File details
Details for the file xgrep-0.2.4-py3-none-any.whl.
File metadata
- Download URL: xgrep-0.2.4-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8b1d70bcd07cac7e96ca97832d740dc69c5e11769306a6f0f217d8b4c39df6e
|
|
| MD5 |
56d3c24bb211beea7eb2b22c58c74c14
|
|
| BLAKE2b-256 |
c8deebd0a3591cbb64613ce739244accc8fe82fcffa2cd0b2a3839b1db385b61
|