Linux文本三剑客-grep


Global search REgular expression and Print out the line
全局搜索正则表达式并打印行

作用:

对标准输入的行进行分析,过滤指定的行.

模式:

格式:

grep [option] PATTERN [FILE...]

选项:

-E:支持使用扩展正则表达式(使用正则表达式的时候需要加引号 这样才规范)
-i:过滤的时候忽略大小写
-v:排除,正好取反
-n:显示行号
-o:只显示匹配到的
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-e 实现多个选项间的逻辑or关系
-f 把正则表达式写在文件里面进行过滤
-F 后面的内容当作普通字符串处理,不认为是正则表达式
-r:递归(查看目录下的文件)

示例

1.显示非#号和空格开头的非空行:
grep -v '^[[:space:]]*#\|^$' /etc/fstab

2.取两个文件的相同行
查看两个文件内容相同的行: grep -f file1 file2 -- 把file1作为正则表达式,和file2进行一一对比
法一: grep -f file1 file2
法二:
(1)先把两个文件内容合在一起: cat file1 file2
(2)使用sort排序在使用uniq -d取出重复的行
cat file1 file2 | sort | uniq -d

3.连接状态的统计

ss -nta | grep -v '^State' |cut -d" " -f1|sort |uniq -c
#-d:指定分隔符
#-c 统计每一行出现的次数