继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

呼如林
关注TA
已关注
手记 497
粉丝 103
获赞 363

我怎样从几个文件中搜索(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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP