http://www.librebyte.net/en/gnulinux/14-practical-examples-of-the-grep-command
grep is a command-line utility that allows searching of words and/or patterns in a file or group of files. Its name comes from the ed command g/re/p (globally search a regular expression and print). Grep does a global search by keyword or regular expression and print all matching lines on the standard output.
Basic options:
From the file: tools.txt, which contains the following lines:
grep is a command-line utility that allows searching of words and/or patterns in a file or group of files. Its name comes from the ed command g/re/p (globally search a regular expression and print). Grep does a global search by keyword or regular expression and print all matching lines on the standard output.
General syntax
$ grep [OPTIONS] PATTERN [FILE...]
$ grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
In the second form you can specify more than one pattern using several times the -e switch or reading the pattern from a file (-f)Basic options:
- -c: Count the number of matches.
- -E: Interpret PATTERN as an extended regular expression.
- -f: Gets the patterns from a file, one per line.
- -i: Case insensitive search.
- -l: Print the name of each input file where matches are found.
- -n: Prefix the line number where matches are found.
- -o: Prints only the part that matches.
- -v: Invert the sense of matching, to select non-matching lines.
- –color: highlight the word that matches with the color specified in the variable of environment GREP_COLOR, red by default
- -r,-R: Read all files under each directory, recursively
From the file: tools.txt, which contains the following lines:
Grep was originally developed for the Unix operating system. GNU GREP was written from scratch for the GNU operating system. ngrep is a network packet analyzer written by Jordan Ritter. find is a command-line utility that searches one or more directory trees of a file system. The top program provides a dynamic real-time view of a running system. xargs - build and execute command lines from standard input.We’ve developed the following examples:
1. Case sensitive search
$ grep Grep tools.txt
Grep was originally developed for the Unix operating system.
2. Case insentive search
$ grep -i Grep tools.txt
Grep was originally developed for the Unix operating system.
GNU GREP was written from scratch for the GNU operating system.
ngrep is a network packet analyzer written by Jordan Ritter.
3. Count the number of matches (case sensitive)
$ grep -c Grep tools.txt 1
4. Count the number of matches (case insensitive)
$ grep -ic Grep tools.txt 3
5. Prefix line number
$ grep -in Grep tools.txt
1:Grep was originally developed for the Unix operating system.
2:GNU GREP was written from scratch for the GNU operating system.
3:ngrep is a network packet analyzer written by Jordan Ritter.
6. Only the part that match
$ grep -io Grep tools.txt Grep GREP grep
7. Find lines containing xargs or top
$ grep -E 'xargs|top' tools.txt
The top program provides a dynamic real-time view of a running system.
xargs - build and execute command lines from standard input
8. Find lines that containing Grep (case insentive) and GNU (case sentive)
$ grep -i grep tools.txt | grep GNU
GNU GREP was written from scratch for the GNU operating system.
9. Find all lines that don’t match grep
$ grep -iv grep tools.txt
find is a command-line utility that searches one or more directory trees of a file system.
The top program provides a dynamic real-time view of a running system.
xargs - build and execute command lines from standard input
10. Specify multiple patterns
Find all lines containing find or GNU$ grep -e find -e GNU tools.txt
GNU GREP was written from scratch for the GNU operating system.
find is a command-line utility that searches one or more directory trees of a file system.
11. Read patterns from a file
$ cat pattern.txt
Unix|GNU grepDo a regular expression search and find all lines containing Unix, GNU or grep
$ grep -Ef pattern.txt tools.txt
Grep was originally developed for the Unix operating system.
GNU GREP was written from scratch for the GNU operating system.
ngrep is a network packet analyzer written by Jordan Ritter.
12. Highlight matching
The color of highlighted can be changed by setting the GREP_COLOR environment variable$ export GREP_COLOR='1;37;43' && grep -i --color grep tools.txt
13. Anchoring
Find the exact word$ grep -i '\bgrep\b' tools.txt
Grep was originally developed for the Unix operating system.
GNU GREP was written from scratch for the GNU operating system.
14. Recursive search
Do a search for the word: Connection ignoring case and print the file list$ grep -ilR Connection dbtool/ dbtool/src/DBTool/DB/Connection.php dbtool/src/DBTool/DB/SqliteConnection.php dbtool/src/DBTool/DB/ConnectionProperties.php dbtool/src/DBTool/DB/ConnectionException.php dbtool/src/DBTool/DB/MySqlConnection.php
Further readings
- man grep
- info grep
- grep in wikipedia
No comments:
Post a Comment