Detailed usage of the grep command, grep command
In linux/unix, The grep command is very useful. It works with pipelines (|) and is very powerful. It is used to search text files. If you want to find a string in several text files, you can use the 'grep' command to search for the specified string in the 'grep' text.
Suppose you are searching for a file with the string 'Magic 'in the'/usr/src/linux/documentation' directory:
$ Grep magic/usr/src/linux/Documentation /*
Sysrq.txt: * How do I enable the magic SysRQ key
Sysrq.txt: * How do I use the magic SysRQ key
The 'sysrp.txt 'file contains this string. The SysRQ function is discussed.
By default, 'grep' only searches for the current directory. If the directory contains many subdirectories, 'grep' is listed as follows:
Grep: sound: Is a directory
This may make the output of 'grep' difficult to read. There are two solutions:
Search for subdirectories: grep-r
Or ignore the subdirectory: grep-d skip
Of course, if you expect a lot of output, you can use the pipeline to transfer it to the 'less'. Read:
$ Grep magic/usr/src/linux/Documentation/* | less
In this way, you can read more conveniently.
* Note that you must provide a file filtering method (for searching all files, use *). If you forget, 'grep' will wait until the program is interrupted. If this happens, press <ctrl c> and try again.
The following are some interesting and common command line parameters:
Grep-I pattern files: searches case-insensitive (for example, grep-I "hello"./test.txt ). It is case sensitive by default.
Grep-l pattern files: only names of matched files are listed,
Grep-L pattern files: Lists unmatched file names,
Grep-w pattern files: match only the entire word, not a part of the string (for example, match 'Magic ', not 'magical '),
Grep-C number pattern files: the matching context displays the rows of [number,
Grep pattern1 | pattern2 files: displays the rows matching pattern1 or pattern2,
Grep pattern1 files | grep pattern2: displays rows that match both pattern1 and pattern2.
Here are some special symbols used for search:
\ <And \> respectively indicate the start and end of a word.
For example:
Grep man * matches 'Batman ', 'manic', 'Man ', etc,
Grep '\ <man' * matches 'manic 'and 'man', but not 'Batman ',
Grep '\ <man \>' only matches 'man ', not other strings such as 'Batman' or 'manic.
'^': Indicates the first row of the matched string,
'$': Indicates the end of a matched string,
Copyright Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger.