您的位置:首页 > 运维架构 > Linux

Linux脚本攻略学习笔记10

2017-05-20 13:29 471 查看
今天主要说说grep吧,在讲grep之前,先上一张正则表达式的图,以供查询:



grep命令作为Unix中用于文本搜索的神奇工具,能够接受正则表达式,生成各种格式的输出,除此之外,他还有大量的有趣的选项,让我们看看具体的用法。

(1)搜索包含特定模式的文本行:

$grep pattern filename
this is the line containing pattern(2)也可以像下面这样从stdin中读取:
$ echo -e "this is a word\nnext line"|grep word
this is a word


(3)单个grep命令也可以对多个文件进行搜索:
$ grep "match_text" file1 file2 file3 ...(4) 用--color选项可以在输出行中着重标记出匹配到的单词:
$grep word filename --color=auto
this is the line containing word


(5) grep命令只解释match_text中某些特殊字符。如果要使用正则表达式,需要添加-E选项----这意味着使用扩展正则表达式。或者也可以使用默认允许正则表达式的grep命令---egrep。例如:
$grep -E "[a-z]+" filename
或者
$egrep "[a-z]+" filename(6) 只输出文件中匹配到的文本部分,可以使用选项-o:
$ echo this is a line | egrep -o "[a-z]+\."
line





(7) 要打印除包含match_pattern行之外的所有的行,可以使用:

$ grep -v match_pattern line选项-v可以将匹配结果进行反转



(8) 统计文件或文本中包含匹配字符串的行数:

$ grep -c "text" filename需要注意的是-c只是统计匹配行的数量,并不是匹配的次数。例如:



尽管有6个匹配项,但命令只打印出2,这是因为只有两个匹配行。在单行中出现的多次匹配只能被统计一次。

(9)要统计文件中统计匹配项的数量,可以使用下面的技巧:



(10)-n选项可以打印匹配的行号。

下次说一说grep的更多特性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息