Grep:grep匹配行所在文件的文件名
April 23, 2014
当我们在大量文件中使用grep命令来查找匹配行,有时候可能需要只显示匹配行所在文件的文件名,那么如何才能只显示匹配行所在文件的文件名呢?
普通的grep命令查找:
[root@devops ~]# grep user1 /etc/* /etc/group:user1:x:501: /etc/group:user1add:x:503: /etc/group-:user1:x:501: /etc/group-:user1add:x:503: /etc/gshadow:user1:!:: /etc/gshadow:user1add:!:: /etc/gshadow-:user1:!:: /etc/gshadow-:user1add:!:: /etc/passwd:user1:x:501:501::/home/user1:/bin/bash /etc/passwd:user1add:x:503:503::/home/user1add:/bin/bash /etc/passwd-:user1:x:501:501::/home/user1:/bin/bash /etc/passwd-:user1add:x:503:503::/home/user1add:/bin/bash /etc/shadow:user1:!!:16176:0:99999:7::: /etc/shadow:user1add:!!:16176:0:99999:7::: /etc/shadow-:user1:!!:16176:0:99999:7::: /etc/shadow-:user1add:!!:16176:0:99999:7::: [root@devops ~]#
从上面的输出结果,可以看出来第一个字段是文件名,在grep命令里,可以使用-l选项来控制grep命令的输出,只显示匹配行的文件名。
[root@devops ~]# grep -l user1 /etc/* /etc/group /etc/group- /etc/gshadow /etc/gshadow- /etc/passwd /etc/passwd- /etc/shadow /etc/shadow- [root@devops ~]#
如果想显示不匹配行所在文件的文件名,可以使用-L选项:
[root@devops ~]# grep -l user1 /etc/* /etc/group /etc/group- /etc/gshadow /etc/gshadow- /etc/passwd /etc/passwd- /etc/shadow /etc/shadow- [root@devops ~]#
0 Comments