linux三剑客之grep命令
linux三剑客之grep命令
grep命令一般用来筛选数据,一般用来筛选我们需要的数据。
格式:
grep [参数] [过滤的规则] [路径]
标准输出 | grep [参数] [过滤规则]
2、grep命令的参数
参数:
-n : 显示过滤出来的文件在文件当中的行号
-o : 只显示匹配到的内容
-q : 静默输出(一般用来shell脚本当中)
-i : 忽略大小写
-c : 显示匹配到的行数
-v :反向查找
-w : 匹配某个词
-E :使用扩展正则
-R :递归查询
-l : 只打印文件路径
-color:标记颜色
扩展参数:
-A :显示匹配到的数据的后几n行
-B :显示匹配到的数据的前几n行
-C :显示匹配到的数据的前后各几n行
知识储备:
$? : 代表上一条命令执行是否成功(0:成功,非0代表失败)
词 :一连串字母和数字组成的字符串
wc -l : 打印显示有多行
永久别名:
修改环境变量配置文件 ~/.bashrc
加入alias grep="grep --color"
此时不会立刻失效:
系统更新文件:source 文件路径
3、案例
案例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及其前两行