Linux Grep
grep简介
- grep是Linux下一个文本搜索工具,全名Globe serach a Regular Expression and Print。
- grep通过正则表达式搜索匹配内容。
- 命令格式:
1.grep [option] 'pattern' file
2.command|grep [option] 'pattern'
===============================
option
- -i:ignore-case,对匹配内容不区分大小写
- -o:only-matching,只输出匹配到的内容
- -v:invert-match,不匹配模式的内容
- -R:recursive,递归搜索,当搜索目录时,将会搜索指定目录以及目录下的所有子目录
- -l:list,files-with-matches,显示内容与模式匹配的文件
- -n:line-number,输出时显示行号
- -c:count,输出匹配内容的行数,不输出匹配内容
===============================
表达符号
^:锚定开头,标记此点是一行记录的开头位置
例:
echo "aassddff"|grep -o '*^'
输出结果将为空,因为一行记录的开头前不可能有任何内容$:锚定结尾
- *:匹配前一字符0此或多次
- .:匹配任意一个非换行符的字符
[]:匹配范围内某一字符
例:
echo "aabbccdd"|grep -o '[ab]'
输出:
a
a
b
b[^]:不匹配范围内所有字符
(pattern):将pattern分组,用来引用,引用第一个分组\1,第二个\2…
例1:
echo "ab44 d44a d" |grep -o '\([0-9][0-9]\) d\1'
44 d44
例2:
echo "ab44 d33a d" |grep -o '\([0-9][0-9]\) d\1'
引用可认为用此前分组匹配的内容替换引用标识,例1和例2中的\1都代表44,所以例1有输出而例2无输出{n,m}:匹配前一字符或分组至少n到m次,n可为0,m可选
注:{n,}表示n到任意次数,{n}表示匹配正好n次
- \<:锚定单词的开头
- >:锚定单词的结尾
- \w:匹配任意一个字母或数字,相当于[A-Za-z0-9]
- \W:与\w相反,匹配任意非字母或数字,相当于[^A-Za-z0-9]
===================================
grep里的与、或
- 与:grep ‘pattern1’|grep ‘pattern2’,其实就是在匹配pattern1的结果集上继续进行pattern2的匹配
- 或:grep ‘pattern1|pattern2’
本文介绍Linux下grep命令的使用方法,包括基本语法、常用选项、正则表达式及实际应用场景等,适合初学者掌握grep的强大搜索功能。
209

被折叠的 条评论
为什么被折叠?



