grep命令:在指定的文本精确查找满足条件的行,简而言之就是我是用grep命令指定查找某个文本,设定查找条件,grep把满足条件的行给显示出来
实验准备有一个test1文本:
[root@ansible ~]# cat test1
11aagg33
22eeffgg
aaddee22
gg8899kk
EOF
用法格式: 命令+选项+"查询的关键字"+文件路径
常用方式:
1.直接查询
[root@ansible ~]# grep "aa" test1(在test1文本中查询aa有关的行)
[root@ansible ~]# grep "aa" test1
11aagg33
aaddee22
2.正则表达式查询
[root@ansible ~]# grep "^aa" test1
"^" "$" 为正则表达式的使用以什么为开头和以什么为结尾的查询
[root@ansible ~]# grep "^aa" test1
aaddee22
[root@ansible ~]# grep "kk$" test1
gg8899kk
3.查询模糊的文件名和指定的文件内容
[root@ansible ~]# grep aa *st1 (查询文件后缀有st1的文件和内容中有aa的行)
[root@ansible ~]# grep aa *st1
11aagg33
aaddee22
4.递归查询
[root@ansible ~]# grep -r 99kk /root (查找root下所有文件目录及所有子目录文件中包含99kk内容的行)
-r 表示递归
[root@ansible ~]# grep -r 99kk /root
Binary file /root/.cache/tracker/meta.db-wal matches
/root/test1:gg8899kk
5.反向查询
[root@ansible ~]# grep -v "kk" test1 (查询test1文件中不包含kk的行)
-v 表示取反(不含有,没有,不包含)
[root@ansible ~]# grep -v "kk" test1
11aagg33
22eeffgg
aaddee22
EOF
6.忽略大小写
[root@ansible ~]# grep -i "AA" test1 (查找AA的行但是忽略大小写)
-i 表示忽略大小写
[root@ansible ~]# grep -i "AA" test1
11aagg33
aaddee22