Home > Article > Operation and Maintenance > How to use grep command in linux? (detailed explanation)
The grep command in Linux system is a powerful text search tool. It can use regular expressions to search text and print out matching lines. Its usage syntax is "grep [options] pattern [files] ".
#The operating environment of this article: linux5.9.8 system, Dell G3 computer.
Linux grep command
The Linux grep command is used to find qualified strings in files; it can also be used to find files containing specified template styles. It can use regular expression search to search for a specified string pattern in a file, list the file names containing substrings matching the pattern, and output the text lines containing the string.
grep works like this: it searches one or more files for a string template. If the template contains spaces, it must be quoted, and all strings following the template are treated as file names. The search results are sent to standard output without affecting the original file content.
Basic syntax:
grep [options] pattern [files]
Main parameters of [options]:
-a or --text: Do not ignore Binary data.
-A2b52f1cd2dbd91c8083f292afae31b01 or --after-context=2b52f1cd2dbd91c8083f292afae31b01 : In addition to displaying the column that conforms to the template style, and display the content after the row.
-b or --byte-offset: Mark the number of the first character of the line before displaying the line that matches the style.
-B3a17719c3dc5c6a30ddb351d98fd6bff or --before-context=3a17719c3dc5c6a30ddb351d98fd6bff : In addition to displaying the line that matches the style, the content before that line is displayed.
-c or --count : Count the number of columns that match the style.
-C3a17719c3dc5c6a30ddb351d98fd6bff or --context=3a17719c3dc5c6a30ddb351d98fd6bff or -3a17719c3dc5c6a30ddb351d98fd6bff : In addition to displaying the line that matches the style, and display this line Before and after content.
-d c0c478a2b113bba92686c59645344e0e or --directories=c0c478a2b113bba92686c59645344e0e : This parameter must be used when specifying directories instead of files to be searched, otherwise the grep command will report information and stop. action.
-e144db954177ff6cdba977c2cd2085ab1 or --regexp=144db954177ff6cdba977c2cd2085ab1 : Specify a string as the style for searching file content.
-E or --extended-regexp : Use the style as extended ordinary notation.
-f02c041fdf3648d9b505fb98f4d11722d or --file=02c041fdf3648d9b505fb98f4d11722d : Specify a rule file whose content contains one or more rule patterns, allowing grep to find file contents and formats that meet the rule conditions. One rule style for each row.
-F or --fixed-regexp : Treat styles as a list of fixed strings.
-G or --basic-regexp : Treat the style as a normal notation.
-h or --no-filename: Do not indicate the file name to which the line belongs before displaying the line that matches the style.
-H or --with-filename: Before displaying the line that matches the style, indicates the file name to which the line belongs.
-i or --ignore-case: Ignore differences in character case.
-l or --file-with-matches: List file names whose file contents match the specified pattern.
-L or --files-without-match: List file names whose content does not match the specified style.
-n or --line-number: Before displaying the line that matches the style, indicate the column number of the line.
-o or --only-matching: Only display the matching PATTERN part.
-q or --quiet or --silent: Do not display any information.
-r or --recursive: The effect of this parameter is the same as specifying the "-d recurse" parameter.
-s or --no-messages: Do not display error messages.
-v or --revert-match : Display all lines that do not contain matching text.
-V or --version : Display version information.
-w or --word-regexp: Only display columns that match whole words.
-x --line-regexp: Only display columns that match all columns.
-y: The effect of this parameter is the same as specifying the "-i" parameter.
-?: Display the upper and lower matching lines at the same time? lines, such as: grep -2 pattern filename displays the upper and lower lines of the matching line at the same time.
pattern Main parameters of regular expression:
\: Ignore the original meaning of special characters in the regular expression.
^: Matches the starting line of the regular expression.
$: Matches the end line of the regular expression.
\5cc45201360f1db776a32e1bca388618:To the end of the line matching the regular expression.
[]: A single character, such as [A] means A meets the requirements.
[ - ]: Range, such as [A-Z], that is, A, B, C to Z all meet the requirements.
.: All single characters.
*: There are characters, and the length can be 0.
Code example:
Example 1: In the current directory, find files with the word "test" prefixed file containing the "test" string and print out the line of the string. At this time, you can use the following command:
grep test test*
Output:
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行 testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行 testfile_2:Linux test #列出testfile_2 文件中包含test字符的行
Example 2:Reverse search, the "-v" parameter can be used to print out the contents of lines that do not meet the conditions. Find lines that do not contain test in files whose file names contain test
grep -v test *test*
Output:
testfile1:helLinux! testfile1:Linis a free Unix-type operating system. testfile1:Lin testfile_1:HELLO LINUX! testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. testfile_1:THIS IS A LINUX TESTFILE! testfile_2:HELLO LINUX! testfile_2:Linux is a free unix-type opterating system.
相关linux视频教程推荐:《linux语言教程》
以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!
The above is the detailed content of How to use grep command in linux? (detailed explanation). For more information, please follow other related articles on the PHP Chinese website!