1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 07:08:01 +00:00

Add Grep For Files With Multiple Matches as a unix til

This commit is contained in:
jbranchaud
2018-08-15 12:56:01 -05:00
parent d57002c61f
commit 0fbaad7a09
2 changed files with 33 additions and 1 deletions

View File

@@ -10,7 +10,7 @@ smart people at [Hashrocket](http://hashrocket.com/).
For a steady stream of TILs from a variety of rocketeers, checkout
[til.hashrocket.com](https://til.hashrocket.com/).
_698 TILs and counting..._
_699 TILs and counting..._
---
@@ -634,6 +634,7 @@ _698 TILs and counting..._
- [Globbing For All Directories In Zsh](unix/globbing-for-all-directories-in-zsh.md)
- [Globbing For Filenames In Zsh](unix/globbing-for-filenames-in-zsh.md)
- [Grep For Files Without A Match](unix/grep-for-files-without-a-match.md)
- [Grep For Files With Multiple Matches](unix/grep-for-files-with-multiple-matches.md)
- [Grep For Multiple Patterns](unix/grep-for-multiple-patterns.md)
- [Hexdump A Compiled File](unix/hexdump-a-compiled-file.md)
- [Jump To The Ends Of Your Shell History](unix/jump-to-the-ends-of-your-shell-history.md)

View File

@@ -0,0 +1,31 @@
# Grep For Files With Multiple Matches
The `grep` utility is a great way to find files that contain a certain
pattern:
```bash
$ grep -r ".class-name" src/css/
```
This will recursively look through all the files in your css directory to
find matches of `.class-name`.
Often times these kinds of searches can turn up too many results and you'll
want to pare it back by providing some additional context.
For instance, we may only want results where `@media only screen` also
appears, but on a different line. To do this, we need to chain a series of
`greps` together.
```bash
$ grep -rl "@media only screen" src/css |
xargs grep -l ".class-name"
```
This will produce a list of filenames (hence the `-l` flag) that contain
both a line with `@media only screen` and a line with `.class-name`.
If you need to, chain more `grep` commands on to narrow things down even
farther.
See `man grep` for more details.