Linux脚本攻略学习笔记10

今天主要说说grep吧,在讲grep之前,先上一张正则表达式的图,以供查询:

Linux脚本攻略学习笔记10_第1张图片

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的更多特性





你可能感兴趣的:(shell)