为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Linux

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

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

grep "word" 文件名grep root /etc/*

示例输出:

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

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

grep -l "string" filenamegrep -l root /etc/*

示例输出:

/etc/aliases/etc/arpwatch.confgrep: /etc/at.deny: Permission denied/etc/bash.bashrc/etc/bash_completion/etc/ca-certificates.conf/etc/crontab/etc/group

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

grep -L "word" filenamegrep -L root /etc/*

示例输出:

/etc/apm/etc/apparmor/etc/apparmor.d/etc/apport/etc/apt/etc/avahi/etc/bash_completion.d/etc/bindresvport.blacklist/etc/blkid.conf/etc/bluetooth/etc/bogofilter.cf/etc/bonobo-activation/etc/brlapi.key

译文出处:https://www.zcfy.cc/article/linux-or-unix-grep-command-tutorial-series-5-grep-from-files-and-display-the-file-name  

via: http://www.cyberciti.biz/faq/grep-from-files-and-display-the-file-name/

作者:Vivek Gite 译者:wxy 校对:wxy


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消