grep(global search regular expression):是一种强大的文本搜索工具,他能使用正则表达式搜索文本
grep家族包括grep、egrep、fgrep,其中egrep是grep的扩展,支持更多的re元字符,fgrep中正则表达式中的元字符表示其自身的字面意义,不在有其他特殊的含义。
grep语法结构:grep -option 'word' filename
-option说明:
-E:允许使用egrep扩展模式匹配
-i:忽略大小写
-v:反向选择,显示不包括匹配行
-n:显示行号
-l:查询多文件时只输出包含匹配字符的文件名
-s:不显示不存在或无匹配文本的错误信息
-c:匹配行的次数
-w, --word-regexp:强制模式只匹配完整的单词
-x, --line-regexp:强制模式只能匹配整行
通配符与正则表达式说明:
通配符主要用在linux的shell命令中,常用于匹配文件名或目录
正则表达式用于文本内容中的字符串搜索替换,常用于awk、grep、sed、vim
示例:
打印文件中以#开头或空行的行号:grep -nE "^#|^$" for.sh
打印t字符连续出现2次以上的行:grep -E "t{2,}" a.txt
匹配IPV4地址:grep --color -E "^([0-9]{1,3}\.){3}[0-9]{1,3}$" ipfile