Linux commands: grep commands

Source: Internet
Author: User

During the learning process of the Linux system, you will know a lot of commands. Remembering these commands will greatly improve your understanding of the Linux system. You may see the grep command. Here we will introduce the knowledge of the grep command.

1. Role
In Linux, The grep command is a powerful text search tool that uses regular expressions to search for text and print Matching lines. Grep stands for Global Regular Expression Print, which indicates the Global Regular Expression version. Its permission is granted to all users.

2. Format
Grep [options]

3. Main Parameters
[Options] main parameters:
-C: only counts matching rows are output.
-I: case-insensitive (only applicable to single characters ).
-H: When querying multiple files, the file name is not displayed.
-L: When querying multiple files, only names containing matching characters are output.
-N: displays matching rows and row numbers.
-S: the error message that does not exist or does not match the text is not displayed.
-V: displays all rows that do not contain matched text.
Main Parameters of the regular expression pattern:
\: Ignore the original meaning of special characters in regular expressions.
^: Match the start line of the regular expression.
$: Matches the end row of the regular expression.
\ <: Starts from the row that matches the regular expression.
\>: Ends with the row that matches the regular expression.
[]: A single character. For example, [A] indicates that A meets the requirements.
[-]: Range, such as [A-Z], that is, A, B, C Until Z all meet the requirements.
. : All single characters.
*: It can contain 0 characters.

4. Run the grep command to use a simple instance.
$ Grep 'test' d *
Display all the lines containing test in files starting with d.
$ Grep 'test' aa bb cc
The row Matching test is displayed in the aa, bb, and cc files.
$ Grep '[a-z] \ {5 \} 'aa
Display All rows of a string that contains at least five consecutive lowercase characters.
$ Grep 'W \ (es \) t. * \ 1' aa
If west is matched, es is stored in the memory, marked as 1, and any characters (. *). These characters are followed by another es (\ 1). If they are found, the row is displayed. If you use egrep or grep-E, you do not need to escape it by using the "\" character. You can directly write it as 'W (es) t. * \ 1.

5. The grep command uses a complex instance
Suppose you are searching for a file with the string 'Magic 'in the'/usr/src/Linux/doc' directory:
$ Grep magic/usr/src/Linux/Doc /*
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
If there are many outputs, you can use the pipeline to convert them to '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 *). 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 command line parameters:
Grep-I pattern files: searches case-insensitive. 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,

I hope you can learn the grep command through this article.

  1. Easily connect to the campus network using Linux
  2. Fully Understand Linux Process Technology
  3. Introduction to the password command in Linux
  4. Learn about Linux regulatory commands
  5. How to view the ps-aux command of all processes in Linux

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.