> For the complete documentation index, see [llms.txt](https://agrat.gitbook.io/admin/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://agrat.gitbook.io/admin/linux/comands/grep.md).

# grep

Поиск по файлам

{% tabs %}
{% tab title="Bash" %}

```bash
grep -rnw '/etc/mysql/' -e '127'
```

{% endtab %}
{% endtabs %}

* `-r` or `-R` is recursive,
* `-n` is line number, and
* `-w` stands for match the whole word.
* `-l` (lower-case L) can be added to just give the file name of matching files.

Along with these, `--exclude`, `--include`, `--exclude-dir` flags could be used for efficient searching:

* This will only search through those files which have .c or .h extensions:

  ```
  grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
  ```
* This will exclude searching all the files ending with .o extension:

  ```
  grep --exclude=*.o -rnw '/path/to/somewhere/' -e "pattern"
  ```
* For directories it's possible to exclude a particular directory(ies) through `--exclude-dir` parameter. For example, this will exclude the dirs dir1/, dir2/ and all of them matching \*.dst/:

  ```
  grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
  ```
