一、grep是什么。
grep:Global search regular expression and print out the line.
grep是一种文本搜索处理工具,根据用户指定的文本模式或搜索条件对目标文件进行逐行搜索,并显示能匹配到的行。
语法格式:grep [options]... 'PATTERN' FILE...
'':弱引用,
"":强引用,如PATTERN中有变量需用双引号
正则表达式:是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能
基本正则表达式:grep
扩展正则表达式:egrep,grep -E
不支持使用正则表达式:fgrep,即用户搜索条件或文本模式表示其字面意义
1、字符匹配
.:匹配任意单个字符
*:任意长度,它前面的字符可以出现任意次
.*:任意长度的任意字符
a|b:多条件匹配,a或者b #扩展正则表达式可用
[]:匹配指定范围内的任意单个字符
[0-9],[[:digit:]] #表示任意数字
[a-z],[[:lower:]] #表示任意小写字母
[A-Z],[[:upper:]] #表示任意大写字母
[[:space:]] #表示空格
[[:punct:]] #表示特殊符号
[[:alpha:]] #表示任意字母
[[:alnum:]] #表示任意字母和数字
[[:blank:]] #匹配一个空格或制表符(TAB)
[^] #条件取反
2、次数匹配元字符
#"\"符号为转义符,扩展正则表达式不需要转义
\?:0次或1次,它前面的字符是可有可无的
\{m\}:精确匹配m次,它前面的字符要出现m次 #转义前{m}
\{m,n\}:至少m次,至多n次 #转义前{m,n}
\{m,\}:至少m次 #转义前{m,}
+:至少1次
\{0,n\}:至多n次 #转义前{0,n}
3、位置锚定
^:行首锚定,写在模式最左侧
$:行尾锚定,写在模式最右侧
^$:空白行
\<:词首,写在字符左侧
\>:词尾,写在字符右侧
\<char\>:锚定字符串
\b:字符串锚定,不区分词首词尾
4、分组和引用
\(\):分组中的模式匹配到的内容,可由正则表达式引擎记忆在内存中,之后可被引用。扩展正则表达式不需要转义,直接使用()即可
例如:\(ab\).*\1,即引用前一个括号匹配到的内容
格式:\(char\).*\#,\#表示引用前面第#个括号匹配的内容
5、命令选项
-v:反向选取
-o:仅显示匹配的字串,而非字串所在的行
-i:igonore-case,忽略字符大小写
-E:支持使用扩展正则表达式
--color:匹配字串显示颜色,颜色可指定
-n:显示匹配行的位置,在第几行
-A #:显示上下文,#表示数字,显示下面#行
-B #:显示上面#行
-C #:显示上下#行
6、例子
1)找出/etc/passwd文件中的一位数或两位数;
# grep -E '\<[0-9]{1,2}\>' /etc/passwd 扩展正则
# grep "\<[0-9]\{1,2\}\>" /etc/passwd 基本正则
2)显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
# grep '^[[:space:]]{1,}' /boot/grub/grub.conf
# grep "^[[:space:]]\{1,\}" /boot/grub/grub.conf
3)找出/etc/rc.d/init.d/functions文件中某单词后跟一组小括号“()”行;
# grep -o -E "\<[[:alnum:]]+\>\(\)" /etc/rc.d/init.d/functions
4)显示当前系统上root、fedora或user1用户的默认shell;
# grep -E "^(root|fedora|user1):" /etc/passwd | cut -d: -f7
grep 匹配字段高亮 grep 严格匹配字符
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java 正则表达式匹配数字去掉前面的字符
java 正则表达式匹配数字去掉前面的字符
字符串 System 正则表达式 -
bash grep 正则 匹配 多条件 grep 严格匹配字符
引言grep 是一种功能强大的命令行工具,可以在一个或多个输入文件中搜索与正则表达式匹配的行,并将每条匹配的行写入标准输出。在本文中,我们将向你展示如何使用GNU grep搜索多个字符串或模式。 Grep多模式搜索GNU grep支持三种正则表达式语法,Basic,Extended和Perl兼容。如果未指定正则表达式类型,grep则将搜索模式解释为基本正则表达式。要搜索多个模式,请使用
bash grep 正则 匹配 多条件 grep 忽略大小写 grep 或 匹配 grep 显示包含两个关键字 grep 正则 -
grep怎么精确匹配 grep 匹配字符串
grep: 查找行里符合条件的字符串 grep退出状态: 0: 表示成功; 1: 表示在所提供的文件无法找到匹配的pattern; 2: 表示参数中提供的文件不存在。 参数说明:  
grep怎么精确匹配 grep linux 字符串 正则表达式 搜索