Files
oam/knowledge base/grep.md
2022-04-17 23:11:55 +02:00

55 lines
1.8 KiB
Markdown

# Grep
## TL;DR
```shell
# base search
grep 'pattern' path/to/search
# recursive search
grep -R 'pattern' path/to/search/recursively
grep -R --exclude-dir excluded/dir 'pattern' path/to/search/recursively # gnu grep >= 2.5.2
# show line numbers
grep -n 'pattern' path/to/search
```
## Grep variants
- [`egrep`](#egrep) to use regular expressions in search patterns, same as `grep -E`
- [`fgrep`](#fgrep) to use patterns as fixed strings, same as `grep -F`
- [archive-related variants](#archive-related-variants) for searching into compressed files
- [`pdfgrep`](#pdfgrep) for searching into PDF files
### Archive-related variants
- [`xzgrep`](#xzgrep) (with `xzegrep` and `xzfgrep`)
- [`zstdgrep`](#zstdgrep) for zstd archives
- many many others
### PDFgrep
For simple searches, you might want to use [pdfgrep].
Should you need more advanced grep capabilities not incorporated by pdfgrep, you might want to convert the file to text and search there.
You can to this using [`pdftotext`](pdfgrep.md) as shown in this example ([source][stackoverflow answer about how to search contents of multiple pdf files]):
```sh
find /path -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color "your pattern"' ';'
```
## Further readings
- Answer on [StackOverflow] about [how to search contents of multiple pdf files]
- [Regular expressions in grep with examples]
- [Grep the standard error stream]
- Knowledge base on [pdfgrep]
[grep the standard error stream]: grep\ the\ standard\ error\ stream.md
[pdfgrep]: pdfgrep.md
[stackoverflow]: https://stackoverflow.com
[how to search contents of multiple pdf files]: https://stackoverflow.com/a/4643518
[regular expressions in grep with examples]: https://www.cyberciti.biz/faq/grep-regular-expressions/