grep 命令系列:从文件中搜索并显示文件名

简介:

我怎样从几个文件中搜索(grep),并只显示匹配到的文件的文件名?

当你从不止一个的文件中搜索时,默认它将显示文件名:


 
 
  1. grep "word" 文件名
  2. grep root /etc/*

示例输出:


 
 
  1. /etc/bash.bashrc: See "man sudo_root" for details.
  2. /etc/crontab:17 * * * * root cd / && run-parts --report /etc/cron.hourly
  3. /etc/crontab:25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
  4. /etc/crontab:47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
  5. /etc/crontab:52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
  6. /etc/group:root:x:0:
  7. grep: /etc/gshadow: Permission denied
  8. /etc/logrotate.conf: create 0664 root utmp
  9. /etc/logrotate.conf: create 0660 root utmp

每行开始的第一个部分是文件名(如:/etc/crontab、/etc/group)。使用 -l 选项可以只显示文件名:


 
 
  1. grep -l "string" filename
  2. grep -l root /etc/*

示例输出:


 
 
  1. /etc/aliases
  2. /etc/arpwatch.conf
  3. grep: /etc/at.deny: Permission denied
  4. /etc/bash.bashrc
  5. /etc/bash_completion
  6. /etc/ca-certificates.conf
  7. /etc/crontab
  8. /etc/group

你也可以逆转输出;使用 -L 选项来输出那些不匹配的文件的文件名


 
 
  1. grep -L "word" filename
  2. grep -L root /etc/*

示例输出:


 
 
  1. /etc/apm
  2. /etc/apparmor
  3. /etc/apparmor.d
  4. /etc/apport
  5. /etc/apt
  6. /etc/avahi
  7. /etc/bash_completion.d
  8. /etc/bindresvport.blacklist
  9. /etc/blkid.conf
  10. /etc/bluetooth
  11. /etc/bogofilter.cf
  12. /etc/bonobo-activation
  13. /etc/brlapi.key

grep 命令系列:从文件中搜索并显示文件名











本文来自云栖社区合作伙伴“Linux中国”
原文发布时间为:2013-04-02.
相关文章
|
8月前
|
Linux
`grep`命令搜索当前目录及其子目录下的所有文件
`grep`命令搜索当前目录及其子目录下的所有文件
3176 1
|
8月前
|
Unix Linux
`grep`命令进行文本搜索并忽略大小写
`grep`命令进行文本搜索并忽略大小写
425 2
|
8月前
|
Unix Linux
grep显示匹配行及其行号
grep显示匹配行及其行号
336 2
|
6月前
|
JavaScript Linux
【详细讲解】Linux grep命令用法大全 片尾有示例搜索指定目录中指定文件后缀的指定字符
【详细讲解】Linux grep命令用法大全 片尾有示例搜索指定目录中指定文件后缀的指定字符
172 1
which-find命令,which cd 指令可以查看指令的存放位置,find命令相当于文件的搜索框,find / -name “test“,从目录 / 开始进行搜索, 按照文件名搜索,搜索test
which-find命令,which cd 指令可以查看指令的存放位置,find命令相当于文件的搜索框,find / -name “test“,从目录 / 开始进行搜索, 按照文件名搜索,搜索test
|
8月前
|
搜索推荐 Linux Shell
目录及文件管理、文本内容操作、grep过滤文件内容
目录及文件管理、文本内容操作、grep过滤文件内容
|
8月前
grep仅显示匹配行的文件名
grep仅显示匹配行的文件名
396 1
|
8月前
|
Unix Linux
`grep`命令搜索单个字符串
`grep`命令搜索单个字符串
72 2
|
8月前
|
Shell
grep 搜索当前文件夹下的所有子文件中的文件是否包含8888字符串的命令
要在当前文件夹及其所有子文件夹中的文件中搜索包含字符串 "8888" 的文件,你可以使用 grep 命令结合 -r 或 -R 选项(表示递归搜索)。这里是具体的命令: bash grep -r "8888" . 其中: -r 或 -R:递归搜索。 "8888":你要搜索的字符串。 .:表示当前目录。 这个命令会列出所有包含字符串 "8888" 的文件的名称以及匹配的行。如果你只想看到文件名,而不看具体的匹配行,可以加上 -l 选项: bash grep -rl "8888" . 这样,命令只会输出包含字符串 "8888" 的文件名。
111 1
|
8月前
|
Linux
`grep`命令搜索多个文件中的特定模式
`grep`命令搜索多个文件中的特定模式
217 2