溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux fgrep命令怎么使用

發(fā)布時(shí)間:2022-02-08 15:54:04 來(lái)源:億速云 閱讀:113 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“Linux fgrep命令怎么使用”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Linux fgrep命令怎么使用”吧!

Linux常用命令fgrep命令 是用來(lái)搜索 file 參數(shù)指定的輸入文件(缺省為標(biāo)準(zhǔn)輸入)中的匹配模式的行。

Linux fgrep命令怎么使用

fgrep

為文件搜索文字字符串

補(bǔ)充說(shuō)明

fgrep 命令特別搜索 Pattern 參數(shù),它們是固定的字符串。如果在 File 參數(shù)中指定一個(gè)以上的文件 fgrep 命令將顯示包含匹配行的文件。

fgrep 命令于 grep 和 egrep 命令不同,因?yàn)樗阉髯址皇撬阉髌ヅ浔磉_(dá)式的模式。fgrep 命令使用快速的壓縮算法。$, *, [, |, (, )和\等字符串被 fgrep 命令按字面意思解釋。這些字符并不解釋為正則表達(dá)式,但它們?cè)?grep 和 egrep 命令中解釋為正則表達(dá)式。因?yàn)檫@些字符對(duì)于 shell 有特定的含義,完整的字符串應(yīng)該加上單引號(hào)‘ ... ’。. 如果沒(méi)有指定文件, fgrep 命令假定標(biāo)準(zhǔn)輸入。一般,找到的每行都復(fù)制到標(biāo)準(zhǔn)輸出中去。如果不止一個(gè)輸入文件,則在找到的每行前打印文件名。

  1. fgrep 命令和帶 -F 標(biāo)志的 grep命令是一樣的但出錯(cuò)和用法消息不同-s 標(biāo)志功能也不同。

  2. 每行限制在 2048 個(gè)字節(jié)。

  3. 段落(-p 標(biāo)志下)目前限制在5000個(gè)字符的長(zhǎng)度。

  4. 不要在特定的文件中運(yùn)行 grep 命令,因?yàn)闀?huì)產(chǎn)生不可預(yù)料的結(jié)果。

  5. 輸入行不能包含空字符。

  6. 輸入文件應(yīng)該以換行字符結(jié)尾。

  7. 雖然可以同時(shí)指定很多標(biāo)志,但某些標(biāo)志會(huì)覆蓋其余的標(biāo)志。例如,如果同時(shí)指定 -l 和 -n ,只有文件名寫(xiě)入到標(biāo)準(zhǔn)輸出中去。

語(yǔ)法

 fgrep(選項(xiàng))(參數(shù))

選項(xiàng)

 -b:在找到的每行之前添加行所在的塊編號(hào)。使用此標(biāo)志有助于按照上下文查找磁盤(pán)塊號(hào)碼。-b 標(biāo)志不能用于標(biāo)準(zhǔn)輸入或者管道輸入。
 -c:僅顯示匹配行的計(jì)數(shù)。
 -e 模式:指定模式。這個(gè)工作模式很簡(jiǎn)單,但當(dāng)此模式以 a-(減號(hào)) 開(kāi)頭時(shí)卻是很有用的。
 -f StringFile:指定包含字符串的文件。
 -h:當(dāng)多個(gè)文件被處理時(shí)隱藏文件名。
 -i:當(dāng)進(jìn)行比較時(shí)忽略字母的大小寫(xiě)。
 -l:只列出包含匹配行的文件名(一次)。文件名之間用換行符分隔。
 n:將文件中每行的相對(duì)行號(hào)置于行前。
 -pSeparator:顯示包含匹配行的整個(gè)段落。段落之間將按照Separator參數(shù)指定的段落分隔符加以分隔,這些分隔符是與搜索模式有著相同格式的模式。包含段落分隔符的行將僅用作分隔符;它們不會(huì)被包含在輸出中。缺省的段落分隔符是空白行。
 -q:禁止所有寫(xiě)入到標(biāo)準(zhǔn)輸出的操作,不管是否為匹配行。如果選中輸入行,以 0 狀態(tài)退出。
 -s:僅顯示出錯(cuò)消息。這在檢查狀態(tài)時(shí)很有用。
 -v:顯示除了匹配特定模式的行以外的所有行。
 -w:執(zhí)行單詞搜索。
 -x:顯示匹配模式的行,要求無(wú)額外的字符。
 -y:當(dāng)進(jìn)行比較時(shí)忽略字符的大小寫(xiě)。

此命令返回以下出口值:

 0    找到匹配項(xiàng)。
 1    未找到匹配項(xiàng)。
 >1   發(fā)現(xiàn)語(yǔ)法錯(cuò)誤,或者文件不可訪問(wèn)(即使找到了匹配項(xiàng))。

實(shí)例

搜索幾個(gè)文件中的一個(gè)簡(jiǎn)單字符串:

 fgrep strcpy *.c

在當(dāng)前目錄下所有以 .c 字符串結(jié)尾的文件中搜索字符串 strcpy。

計(jì)數(shù)匹配某模式的行數(shù):

 fgrep -c 『{』pgm.cfgrep -c 『}』pgm.c

顯示在 pgm.c 中包含左括號(hào)和右括號(hào)的行的數(shù)目。

如果在您的 C 程序中一行中沒(méi)有包含多于一個(gè) { (左括號(hào)) 或者 } (右括號(hào)),并且括號(hào)正確匹配,那么這兩個(gè)數(shù)字將是一樣的。如果這兩個(gè)數(shù)字不一樣,您可以將包含括號(hào)的行按照他們?cè)谖募械奈恢庙樞蝻@示出來(lái),使用以下命令:

 egrep {\|} pgm.c

顯示包含某模式的文件名:

 fgrep -l strcpy *.c

搜索當(dāng)前目錄下以 .c 結(jié)尾的文件,然后顯示包含 strcpy 字符串的文件名。

到此,相信大家對(duì)“Linux fgrep命令怎么使用”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI