搜索特定模版的文本行:
[root@shaofeng ~]# grep 1 n.txt
也可以从下面这样从stdin中读取
[root@shaofeng ~]# echo "1 1 1" | grep 1
单个 grep 命令也可以对多个文件进行搜索
[root@shaofeng ~]# grep 1 n.txt out.txt
n.txt:1
n.txt:1
out.txt:1.txt
用--color选项可以在输出中着重标记出匹配的单词
[root@shaofeng ~]# grep 1 n.txt --color=auto
1
1
grep 命令只解释 match_text 中的某些特殊字符。如果要使用正则表达式,需要添加 -E选项—这意味着使用扩展(Extened)正则表达式。或者也可以使用默认允许正则表达式的grep命令—egrep。例如
[root@shaofeng ~]# grep -E "[a-z]+" n.txt
hi
[root@shaofeng ~]# egrep "[a-z]+" n.txt
hi
只输出文件中匹配到的文本部分,可以使用选项-o:
[root@shaofeng ~]# echo this is a line. | grep -Eo "[a-z]+"
this
is
a
line
要打印除包含 match_pattern行之外的所有行,可以使用:
[root@shaofeng ~]# grep -v 1 out.txt
2.txt
3.txt
[root@shaofeng ~]# cat out.txt
1.txt
2.txt
3.txt
统计文件或文本包含匹配字符串的行数:
[root@shaofeng ~]# echo -e "1 2 3 4\n hello \n 5 6" | egrep -c "[0-9]"
2
不想统计匹配到的行数,而是匹配的项的数量
[root@shaofeng ~]# echo -e "1 2 3 4\n hello \n 5 6" | egrep -o "[0-9]" | wc -l
6