欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

grep 命令

程序员文章站 2022-05-12 23:07:35
...

grep 介绍

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的打印出来。grep全称是global regular expression print(全面搜索正则表达式并行打印)

grep的工作方式:它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

grep 格式

grep [OPTIONS] PATTERN [FILE...]


grep功能

Grep是一个强大的工具,用于将正则表达式与文件,多个文件或输入流中的文本进行匹配它会搜索在命令行中指定的文本PATTERN,并输出结果

grep示例

grep 命令

grep 命令

grep 参数

-a, --text                    #等同于 --binary-files=text
-b, --byte-offset         #在每行输出之前,在输入文件中打印基于0的字节偏移量
-c, --count                    #打印符合PARRERN的行数

-d, --directories=ACTION  #读取目录的方式;ACTION 可以是`read', `recurse',或`skip'

-D, --devices=ACTION      #读取设备、先入先出队列、套接字的方式;ACTION 可以是`read'或`skip'

-e, --regexp=PATTERN    #用 PATTERN 来进行匹配操作

-E, --extended-regexp    #PATTERN解释为扩展正则表达式

-f, --file=FILE            #从 FILE 中读取PATTERN

-F, --fixed-strings       #将PATTERN解释为固定字符串的列表

-G, --basic-regexp     #将PATTERN解释为基本的正则表达式

-h, --no-filename        #在每行输出之前,不打印该行所属的文件名称  

-H, --with-filename     #在每行输出之前,打印该行所属的文件名称

-i, --ignore-case         #忽略大小写

-I                              #列出符合查找内容的文件名称

-l, --files-with-matches    #列出文件内容符合指定PARRERN的文件名称

-L, --files-without-match  #列出文件内容不符合指定PARRERN的文件名称

-m, --max-count=NUM       #匹配行NUM之后停止读取文件

-n, --line-number       #在每行输出之前,打印输入文件中的从1开始的行号。

-o, --only-matching     #只显示匹配PATTERN 部分

-P, --perl-regexp         #将PATTERN解释为Perl正则表达式,

-q, --quiet, --silent      #不显示任何信息

-s,--no-messages  #不显示错误信息

-T, --initial-tab             #确保实际行内容的第一个字符位于制表位上,以便制表符对齐看起来正常。

-V--version  #打印grep的版本号,然后退出

-w, --word-regexp       #只选择包含构成全词匹配的那些行。

-x, --line-regexp         #只选择完全匹配整行的匹配项

--help    #打印帮助信息,然后退出。

--binary-files=TYPE     #设定二进制文件的TYPE 类型;

grep的规则表达式:

^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。    
$  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。    
.  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。    
*  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。    
.*   #一起用代表任意字符。   
[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。    
[^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。    
\(..\)  #标记匹配字符,如'\(love\)',love被标记为1。    
\<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。    
\>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。    
x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。    
x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。    
x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。   
\w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。   
\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。   
\b    #单词锁定符,如: '\bgrep\b'只匹配grep。