Linux三剑客之grep
grep是linux三剑客之一,它是文本过滤器(根据文本内容过滤文件)。
1、语法格式: grep [参数] [匹配规则] [操作对象]
2、参数
以下以/etc/fsta文件内容为例,
-
-n : 显示筛选出的内容在文件内的行号
-
-A : 显示匹配行及其后n行
-
-B : 显示匹配行及其前n行
-
C : 显示匹配行及其前后n行
-
-c : 返回匹配内容所在文件的行数
-
-o : 只显示匹配的内容文本
-
-v : 匹配内容取反
-
-q : 静默输出
-
-i : 忽略匹配文本大小写
-
-l : 匹配成功,返回文件名
-
-R | r : 递归匹配(针对目录)
-
-E : 扩展正则匹配(等价于egrep)
练习
-
在/etc/passwd文件中,匹配以ftp开头的行
[root@localhost ~]# grep '^ftp' /etc/passwd
-
在/etc/passwd文件中,匹配以bash结尾的行
[root@localhost ~]# grep 'bash$' /etc/passwd
-
匹配本机中有哪些ip
[root@localhost ~]# ip a | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'
-
在/etc/fstab文件中,匹配无 # 开头的行
[root@localhost ~]# grep -v '^#.*' /etc/fstab
-
在nginx.conf文件中,匹配除#开头的行和空行
[root@localhost ~]# grep -vE '^ *#|^$' /etc/nginx/nginx.coonf