今天内容
1、linux三剑客之grep命令
1、grep命令的作用和使用场景
grep命令一般用来筛选数据,一般用来筛选我们需要的数据。
格式:
grep [参数] [过滤的规则] [路径]
标准输出 | grep [参数] [过滤规则]
案例:
案例1:要求找出/etc目录下,那些文件中包含root
案例2:要求输出本机的所有IP
2、grep命令的参数
参数:
-n : 显示过滤出来的文件在文件当中的行号
-o : 只显示匹配到的内容
-q : 静默输出(一般用来shell脚本当中)
-i : 忽略大小写
-c : 显示匹配到的行数
-v :反向查找
-w : 匹配某个词
-E :使用扩展正则
-R :递归查询
-l : 只打印文件路径
扩展参数:
-A :显示匹配到的数据的后几n行
-B :显示匹配到的数据的前几n行
-C :显示匹配到的数据的前后各几n行
知识储备:
$? : 代表上一条命令执行是否成功(0:成功,非0代表失败)
词 :一连串字母和数字组成的字符串
+ :
wc -l : 打印显示有多行
案例
案例1:要求过滤出/etc/passwd中包含的root的行及其行号
[root@localhost ~]# grep -n "root" /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
案例2:要求过滤出/etc/passwd中包含的root的行,只显示过滤到的内容
[root@localhost ~]# grep -o "root" /etc/passwd
root
root
root
root
案例3:要求过滤/etc/passwd中的Root,忽略大小写
[root@localhost ~]# grep -i 'Root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
案例4:要求匹配mail及其后两行
[root@localhost ~]# grep -n -A 2 "mail" /etc/passwd
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10-operator:x:11:0:operator:/root:/sbin/nologin
11-games:x:12:100:games:/usr/games:/sbin/nologin
案例5:要求匹配mail及其前两行
[root@localhost ~]# grep -n -B 2 "mail" /etc/passwd
7-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8-halt:x:7:0:halt:/sbin:/sbin/halt
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
案例6:要求匹配mail及其前后各两行
[root@localhost ~]# grep -n -C 2 "mail" /etc/passwd
7-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8-halt:x:7:0:halt:/sbin:/sbin/halt
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10-operator:x:11:0:operator:/root:/sbin/nologin
11-games:x:12:100:games:/usr/games:/sbin/nologin
案例7:要求显示包含root的行有多少行
[root@localhost ~]# grep "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# grep -c "root" /etc/passwd
2
案例8:要求查询不包含root的行
[root@localhost ~]# grep -v "root" /etc/passwd
案例9:匹配yang这个词