Linux中使用grep命令搜索文件名及文件內(nèi)容的方法
開源中文社區(qū) 發(fā)布時(shí)間:2016-02-05 11:18:52 作者: Vivek Gite
我要評(píng)論

這篇文章主要介紹了Linux中使用grep命令搜索文件名及文件內(nèi)容的方法,同時(shí)文中還介紹了將匹配結(jié)果高亮顯示的方法,相當(dāng)實(shí)用,需要的朋友可以參考下
從文件中搜索并顯示文件名
當(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)來輸出那些不匹配的文件的文件名:
復(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 '#include<example.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("
相關(guān)文章
- 這篇文章主要介紹了Linux的grep命令中正則表達(dá)式的用法,grep對(duì)正則表達(dá)式的支持使其擁有了強(qiáng)大的文本操作功能,需要的朋友可以參考下2016-02-05
Linux中用grep命令來搜索單詞及統(tǒng)計(jì)匹配的行數(shù)
這篇文章主要介紹了Linux中使用grep命令來搜索多個(gè)單詞和用grep命令統(tǒng)計(jì)匹配字符串的行數(shù)的方法,其中匹配多單詞用到了grep所支持的正則表達(dá)式,需要的朋友可以參考下2016-02-02- 這篇文章主要介紹了Linux系統(tǒng)中g(shù)rep命令的使用技巧,grep命令的使用是Linux入門學(xué)習(xí)中的基礎(chǔ)知識(shí),本文則介紹到了grep匹配文本行數(shù)和遞歸使用等精彩用法,需要的朋友可以參考2016-01-25
- 這篇文章主要介紹了Linux中g(shù)rep與fgrep命令的使用,兩個(gè)命令的使用都與文本的搜索與匹配相關(guān),是Linux入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-01-11
簡(jiǎn)單了解Linux系統(tǒng)中pgrep與pkill命令的使用
這篇文章主要介紹了簡(jiǎn)單了解Linux系統(tǒng)中pgrep與pkill命令的使用,這兩個(gè)命令一般被用來終止進(jìn)程或者用戶登陸,需要的朋友可以參考下2016-01-14詳解Linux系統(tǒng)中字符串搜索命令ngrep的用法
這篇文章主要介紹了Linux系統(tǒng)中字符串搜索命令ngrep的用法,ngrep在grep的基礎(chǔ)功能上又有所擴(kuò)展,需要的朋友可以參考下2015-12-17- 這篇文章主要介紹了Linux命令之grep命令使用介紹,本文著重講解了它的語法,同時(shí)給出了多個(gè)簡(jiǎn)單使用例子,需要的朋友可以參考下2016-06-05
- 這篇文章主要介紹了Linux下grep命令使用實(shí)例,本文講解了主要的grep命令參數(shù)、如何使用grep命令去搜索某個(gè)文件中的內(nèi)容呢、grep 命令遞歸查找、使用grep去匹配某一個(gè)單詞等2015-06-24
15個(gè)Linux Grep命令使用實(shí)例(實(shí)用、常用)
這篇文章主要介紹了15個(gè)Linux Grep命令使用實(shí)例(實(shí)用、常用),本文講解了如從單個(gè)文件中查找指定的字符串、從多個(gè)文件中查找指定的字符串、在文件中匹配正則表達(dá)式、顯示2015-06-15- 這篇文章主要介紹了整理Linux中常用的一些grep命令,本文列舉了14個(gè)用于進(jìn)行查找操作的grep命令,需要的朋友可以參考下2015-05-29