Linux 编辑器(三)--grep-Global search Regular Expression and Print out

grep是一个最初用于UNIX操作系统的命令行工具。在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配的文本。语法为:grep [选项] 字符模式 [文件名1,文件名2]。不输入文件名则从标准输入读取内容。

grep使用正则表达式元字符基本集,包括:
^:匹配行首;
$:匹配行尾;
.:匹配任意字符;
*:匹配0个或多个任意字符;
[]:匹配指定范围内的其中一个字符;
[^]:匹配不在指定范围内的字符;
\<:匹配单词首。(在linux终端上敲命令时,需要多使用一个反斜杠,如:grep abcd\\< filename,因为第一个反斜杠用于转义一个shell的反斜杠。)
\>:匹配单词末。
\{m\}:匹配前一字符的m次出现。
\{m,\}:匹配前一字符的至少m次出现。
\{m,n\}:匹配前一字符至少m次,至多n次出现。

grep的选项包括:
-#:同时显示匹配行上下的#行,#表示数字;
-b:在每行前打印字符偏移量;
-c:只打印匹配的行数,不显示匹配的内容;
-f FILE:从FILE文件中提取模式;
-h:当搜索多个文件时,不显示匹配文件名前缀;
-i:忽略大小写;
-q:取消显示,只返回退出状态,0表示找到了匹配的行;
-l:打印匹配模式的文件清单;
-L:打印不匹配模式的文件清单;
-n:在匹配的行前面打印行号;
-s:不显示关于不存在或无法读取文件的错误信息;
-v:反检索,只显示不匹配的行;
-w:如果被\<和\>引用,就把表达式作为一个单词搜索;
-V:显示软件版本信息。

grep的退出状态存储在$?里,通过ehco $?可以查看,搜索成功值为0,搜索不成功值为1,文件不存在则返回2。

egrep(extend grep)命令与grep相似,执行效率比grep高,但需要占用较大内存空间。egrep使用正则表达式元字符的扩展集,包括:
+:匹配一个或多个前一字符;
?:匹配一个或0个前一字符;
a|b|c:匹配a或b或c。
():分组符号;
x{m}、x{m,}、x{m,n}:作用同x\{m\}、x\{m,\}、x\{m,n\}。

grep -E打开对元字符扩展集的支持,实现与egrep相同的功能。

fgrep:与grep相似,占用空间比egrep小,速度比grep快,但不识别正则表达式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值