天天看點

grep 指令系列:從檔案中搜尋并顯示檔案名grep 指令系列:從檔案中搜尋并顯示檔案名

我怎樣從幾個檔案中搜尋(grep),并隻顯示比對到的檔案的檔案名?

grep 指令系列:從檔案中搜尋并顯示檔案名grep 指令系列:從檔案中搜尋并顯示檔案名

當你從不止一個的檔案中搜尋時,預設它将顯示檔案名:

<code>grep "word" 檔案名</code>

<code>grep root /etc/*</code>

示例輸出:

<code>/etc/bash.bashrc: see "man sudo_root" for details.</code>

<code>/etc/crontab:17 * * * * root cd / &amp;&amp; run-parts --report /etc/cron.hourly</code>

<code>/etc/crontab:25 6 * * * root test -x /usr/sbin/anacron || ( cd / &amp;&amp; run-parts --report /etc/cron.daily )</code>

<code>/etc/crontab:47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / &amp;&amp; run-parts --report /etc/cron.weekly )</code>

<code>/etc/crontab:52 6 1 * * root test -x /usr/sbin/anacron || ( cd / &amp;&amp; run-parts --report /etc/cron.monthly )</code>

<code>/etc/group:root:x:0:</code>

<code>grep: /etc/gshadow: permission denied</code>

<code>/etc/logrotate.conf: create 0664 root utmp</code>

<code>/etc/logrotate.conf: create 0660 root utmp</code>

每行開始的第一個部分是檔案名(如:/etc/crontab、/etc/group)。使用 -l 選項可以隻顯示檔案名:

<code>grep -l "string" filename</code>

<code>grep -l root /etc/*</code>

<code>/etc/aliases</code>

<code>/etc/arpwatch.conf</code>

<code>grep: /etc/at.deny: permission denied</code>

<code>/etc/bash.bashrc</code>

<code>/etc/bash_completion</code>

<code>/etc/ca-certificates.conf</code>

<code>/etc/crontab</code>

<code>/etc/group</code>

你也可以逆轉輸出;使用 -l 選項來輸出那些不比對的檔案的檔案名:

<code>grep -l "word" filename</code>

<code>/etc/apm</code>

<code>/etc/apparmor</code>

<code>/etc/apparmor.d</code>

<code>/etc/apport</code>

<code>/etc/apt</code>

<code>/etc/avahi</code>

<code>/etc/bash_completion.d</code>

<code>/etc/bindresvport.blacklist</code>

<code>/etc/blkid.conf</code>

<code>/etc/bluetooth</code>

<code>/etc/bogofilter.cf</code>

<code>/etc/bonobo-activation</code>

<code>/etc/brlapi.key</code>

本文來自雲栖社群合作夥伴“linux中國”

原文釋出時間為:2013-04-02.

繼續閱讀