主頁(yè) > 知識(shí)庫(kù) > Linux中使用grep命令搜索文件名及文件內(nèi)容的方法

Linux中使用grep命令搜索文件名及文件內(nèi)容的方法

熱門標(biāo)簽:服務(wù)器配置 美團(tuán) 硅谷的囚徒呼叫中心 電話機(jī)器人搭建 解決方案 家政服務(wù)網(wǎng)絡(luò) 外呼系統(tǒng) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式

從文件中搜索并顯示文件名
當(dāng)你從不止一個(gè)的文件中搜索時(shí),默認(rèn)它將顯示文件名:

復(fù)制代碼
代碼如下:

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

示例輸出:

復(fù)制代碼
代碼如下:

/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

每行開始的第一個(gè)部分是文件名(如:/etc/crontab、/etc/group)。使用 -l 選項(xiàng)可以只顯示文件名:

復(fù)制代碼
代碼如下:

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

示例輸出:

復(fù)制代碼
代碼如下:

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

你也可以逆轉(zhuǎn)輸出;使用 -L 選項(xiàng)來(lái)輸出那些不匹配的文件的文件名:

復(fù)制代碼
代碼如下:

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

示例輸出:

復(fù)制代碼
代碼如下:

/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

根據(jù)文件內(nèi)容查找文件
輸入以下命令:

復(fù)制代碼
代碼如下:

grep 'string' *.txt
grep 'main(' *.c
grep '#includeexample.h>' *.c
grep 'getChar*' *.c
grep -i 'ultra' *.conf
grep -iR 'ultra' *.conf

其中
-i : 忽略模式(匹配字符串 valid、 VALID、 ValID )和輸入文件(匹配 file.c FILE.c FILE.C)的大小寫。
-R : 遞歸讀取每個(gè)目錄下的所有文件。

高亮匹配到的模式
在搜索大量文件的時(shí)候你可以輕松地高亮模式:

復(fù)制代碼
代碼如下:

$ grep --color=auto -iR 'getChar();' *.c

為查找到的模式顯示文件名和行號(hào)
你也許需要顯示文件名和行號(hào):

復(fù)制代碼
代碼如下:

$ grep --color=auto -iRnH 'getChar();' *.c

其中,
-n : 在輸出的每行前面添加以 1 開始的行號(hào)。
-H : 為每個(gè)匹配打印文件名。要搜索多個(gè)文件時(shí)這是默認(rèn)選項(xiàng)。(LCTT 譯注:-h 選項(xiàng)強(qiáng)制隱藏文件名;另外 -l 和 -L 選項(xiàng)用于僅顯示匹配/不匹配的文件名,而 -H 和 -h用于控制在顯示匹配行前顯示/不顯示文件名,注意區(qū)分。)

復(fù)制代碼
代碼如下:

$grep --color=auto -nH 'DIR' *

輸出樣例:

你也可以使用 find 命令:

復(fù)制代碼
代碼如下:

$ find . -name "*.c" -print | xargs grep "main("

標(biāo)簽:撫州 邢臺(tái) 臨沂 防城港 北海 烏蘭察布 南昌 韶關(guān)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux中使用grep命令搜索文件名及文件內(nèi)容的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266