grep命令梳理

一:grep的工作原理

    grep命令在一个或多个文件中查找某个字符模式,如果这个模式中包含空格,就必须用引号把它括起来。grep命令中,模式可以是一个被引号括起来的字符串,也可以是单个词。位于模式之后的所有单词都被视为文件名。grep将输出发送到屏幕,它不会对输入文件进行任何修改或变化。grep返回的退出状态为0,表示成功。退出状态为1,表示没有找到。如果找不到指定的文件,退出状态为2。

二:支持的正则表达式元字符

元字符功能实例匹配结果备注
^行首定位符grep “^test” datafile打印所有以test开头的行 
$行尾定位符grep “test$” datafile打印所有以test结尾的行 
.  (点)匹配除“/n”之外的任何单个字符/t..t/匹配包含一个t,后跟两个字符,在跟一个t的行。定位.本身只需加上转义符即可
*零次或多次匹配前面的字符或子表达式/t*est/匹配包含0个或者多个t后跟est的行。可以匹配:est、test、ttest 
[]匹配一组字符中的任一个/[Tt]est/匹配包含Test或者test行 
[^]匹配不在指定组内的字符/[^A-Z]/匹配不在范围A至Z之间的任一个字符 
/<词首定位符//匹配包含以love开头的词的行。如:love、lovergrep “/打印所有包含以north开头的单词的行。
/>词尾定位符/love/>/匹配包含以love结尾的词的行。 
如:aalove
grep “north/>” datafile 
打印所有包含以north结尾的单词的行。
/(pattern/)匹配模式pattern,并将之存储在寄存器中,供之后使用。//(love/)able /1r/最多可以使用9个标签,模式中最左边的标签是第一个。例如:模式love被保存为标签1,用/1表示。左边这个例子中,查找串是一个loveable 后跟 lover的长串。sed、vi、grep支持。 
例如: 
sed “s//(love/)//1able/” 功能是将文件中的love替换成loveable。
x/{m/} 或 
x/{m,/} 或 
x/{m,n/}
字符x的重复出现; 
m次,至少m次,至少m次且不超过n次。
o/{5,10/}匹配包含5-10个连续的字母o的行。vi和grep支持

三:grep选项

选项功能
-b在每一行前面加上其所在的块号,根据上下文定位磁盘块时可能会用到。
-c显示匹配到的行的数目,而不显示行的内容
-h不显示文件名
-i比较字符的时候忽略大小写的区别
-l只列出匹配行所在文件的文件名(每个文件名只列一次),文件名之间用换行符分隔。
-n在每一行前面加上它在文件中的相对行号
-s无声操作,即只显示报错信息,以检查退出状态
-v反向查找,只显示不匹配的行
-w全字匹配

grep –n  ‘^south’ datafile   ----- 选项-n在找到指定模式的行前面加上其行号在一并输出

grep –i  ‘pat’ datafile   ----- 选项-i 关闭大小写敏感性,表达式pat包含任意大小写的组合都符合

grep –v ‘test’ datafile -----查找所有不包含test的行

grep –l ‘test’ *    ----- 查询输出当前目录下所有包含test的文件名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值