命令 | 特点 | 场景 |
grep | 过滤 | grep命令过滤速度是最快的 |
sed | 替换,修改文件内容,取行 | 如果要进行替换/修改文件内容 取出某个范围的内容(早上10点到11点) |
awk | 取列,统计计算 | 取列 对比,比较 >= <= != > < 统计,计算(awk数组) |
1.2 三剑客 - grep
选项 | 含义 |
|
-E | == egrep 支持扩展正则 |
|
-A after(之后) | -A5 匹配你要的内容,显示接下来的5行 |
|
-B before(之前) | -B5 匹配你要的内容,显示上面的5行 |
|
-C context(上下) | -C5 匹配你要的内容,显示上下5行 |
|
-c | 要匹配的内容出现了几行(几次) |
|
-v | 取反,排除 |
|
-n | 显示行号 |
|
-i | 忽略大小写 |
|
-w | 精确匹配 |
|
相关演示:
-A:
#显示3和后面的2个数字
[root@1 ~]# seq 10 |grep -A2 3
3
4
5
-B:
#显示3和前面的2个数字
[root@1 ~]# seq 10 |grep -B2 3
1
2
3
-C:
#显示3前面和后面各2个数字
[root@1 ~]# seq 10 |grep -C2 3
1
2
3
4
5
-c:
#显示sshd出现了几次
[root@1 ~]# ss -anpt |grep sshd
LISTEN 0 128 *:22 *:* users:(("sshd",pid=7107,fd=3))
ESTAB 0 36 192.168.1.54:22 114.249.195.37:45819 users:(("sshd",pid=13176,fd=3))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=7107,fd=4))
[root@1 ~]# ss -anpt |grep -c sshd
3
-v:
#不显示2
[root@1 ~]# seq 5 |grep -v 2
1
3
4
5
-w:
#精准匹配
[root@1 ~]# echo wjw www wqq wjwj |grep -w wjw
[root@1 ~]# echo wjw www wqq wjwj |grep '\bwjw\b'
'\b边界\b'
[root@1 ~]# echo wjw www wqq wjwj |grep '\<wjw\>'
wjw www wqq wjwj