溫馨提示×

溫馨提示×

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

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

Linux系統(tǒng)grep命令如何在文件內(nèi)容中查找關(guān)鍵字?

發(fā)布時(shí)間:2022-01-26 11:26:14 來源:億速云 閱讀:1575 作者:柒染 欄目:開發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)Linux系統(tǒng)grep命令如何在文件內(nèi)容中查找關(guān)鍵字 ,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

find命令可以準(zhǔn)確的查找文件但是不能查找文件內(nèi)的關(guān)鍵字,如果想要查找文件內(nèi)容怎么辦?

查看文件的行數(shù)在 linux 系統(tǒng)中沒有在 windows 系統(tǒng)中那么方便的點(diǎn)點(diǎn)鼠標(biāo)就可以操作文件了,對文件的各種操作都必須使用各種命令來完成。比如有時(shí)候我們需要在不查看文件內(nèi)容的情況下需要知道該文件有多少行。這個(gè)時(shí)候可以通過 linux 的 wc 命令完成我們的想法。下面具體介紹一下 wc 命令的作用以及用法。

wc 命令的作用:統(tǒng)計(jì)指定文件中的字節(jié)數(shù)、字?jǐn)?shù)、行數(shù),并將結(jié)果顯示輸出。

命令語法:wc [選項(xiàng)] 文件

該命令選項(xiàng)參數(shù)如下:

-c 統(tǒng)計(jì)字節(jié)數(shù)

-l 統(tǒng)計(jì)行數(shù)

-w 統(tǒng)計(jì)字?jǐn)?shù)

-m 統(tǒng)計(jì)字符數(shù)

以上選項(xiàng)可以單獨(dú)使用也可以組合使用。注意組合使用時(shí)輸出結(jié)果的列的順序和數(shù)目不受選項(xiàng)的順序和數(shù)目的影響。輸出結(jié)果總是按下述順序進(jìn)行顯示的。

行數(shù) 字?jǐn)?shù) 字節(jié)數(shù) 文件名

例如:

wc -lcw file1 file2

則輸出結(jié)果為:

9 36 file1

8 62 file2

8 24 96 total

省略任選項(xiàng)-lcw,wc命令的執(zhí)行結(jié)果與上面是一樣的。

以上選項(xiàng)也可以單獨(dú)使用,例如:

wc -l filename 輸出 filename 的行數(shù)

wc -c filename 輸出 filename 的字節(jié)數(shù)

wc -m filename 輸出 filename 的字符數(shù)

wc -w filename 輸出 filename 的單詞數(shù)

wc -L filename 輸出 filename 文件里最長的那一行是多少個(gè)字符數(shù)

grep文件內(nèi)容查找命令1.作用

Linux系統(tǒng)中g(shù)rep命令是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來。 grep全稱是Global Regular Expression Print,表示全局正則表達(dá)式版本,它的使用權(quán)限是所有用戶。

2.格式

grep [options]

3.主要參數(shù)

[options]主要參數(shù):

-c:只輸出匹配行的計(jì)數(shù)。

-I:不區(qū)分大 小寫(只適用于單字符)。

-h(huán):查詢多文件時(shí)不顯示文件名。

-l:查詢多文件時(shí)只輸出包含匹配字符的文件名。

-n:顯示匹配行及 行號。

-s:不顯示不存在或無匹配文本的錯(cuò)誤信息。

-v:顯示不包含匹配文本的所有行。

pattern正則表達(dá)式主要參數(shù):

\: 忽略正則表達(dá)式中特殊字符的原有含義。

^:匹配正則表達(dá)式的開始行。

$: 匹配正則表達(dá)式的結(jié)束行。

:到匹配正則表達(dá)式的行結(jié)束。

[ ]:單個(gè)字符,如[A]即A符合要求 。

[ – ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。

.:所有的單個(gè)字符。

  • :有字符,長度可以為0。

4.grep命令使用簡單實(shí)例

$ grep ‘test’ d*

顯示所有以d開頭的文件中包含 test的行。

$ grep ‘test’ aa bb cc

顯示在aa,bb,cc文件中匹配test的行。

$ grep ‘[a-z]{5}’ aa

顯示所有包含每個(gè)字符串至少有5個(gè)連續(xù)小寫字符的字符串的行。

$ grep ‘w(es)t.*\1′ aa

如果west被匹配,則es就被存儲到內(nèi)存中,并標(biāo)記為1,然后搜索任意個(gè)字符(.),這些字符后面緊跟著 另外一個(gè)es(\1),找到就顯示該行。如果用egrep或grep -E,就不用”\”號進(jìn)行轉(zhuǎn)義,直接寫成’w(es)t.\1′就可以了。

5.grep命令使用復(fù)雜實(shí)例

假設(shè)您正在’/usr/src/Linux/Doc’目錄下搜索帶字符 串’magic’的文件:

$ grep magic /usr/src/Linux/Doc/*

sysrq.txt:* How do I enable the magic SysRQ key?

sysrq.txt:* How do I use the magic SysRQ key?

其中文件’sysrp.txt’包含該字符串,討論的是 SysRQ 的功能。

默認(rèn)情況下,’grep’只搜索當(dāng)前目錄。如果 此目錄下有許多子目錄,’grep’會以如下形式列出:

grep: sound: Is a directory

這可能會使’grep’ 的輸出難于閱讀。這里有兩種解決的辦法:

明確要求搜索子目錄:grep -r

或忽略子目錄:grep -d skip

如果有很多 輸出時(shí),您可以通過管道將其轉(zhuǎn)到’less’上閱讀:

$ grep magic /usr/src/Linux/Documentation/* | less

這樣,您就可以更方便地閱讀。

有一點(diǎn)要注意,您必需提供一個(gè)文件過濾方式(搜索全部文件的話用 *)。如果您忘了,’grep’會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 ,然后再試。

下面還有一些有意思的命令行參數(shù):

grep -i pattern files :不區(qū)分大小寫地搜索。默認(rèn)情況區(qū)分大小寫,

grep -l pattern files :只列出匹配的文件名,

grep -L pattern files :列出不匹配的文件名,

grep -w pattern files :只匹配整個(gè)單詞,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

grep -C number pattern files :匹配的上下文分別顯示[number]行,

grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,

grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。

grep -n pattern files 即可顯示行號信息

grep -c pattern files 即可查找總行數(shù)

這里還有些用于搜索的特殊符號:

分別標(biāo)注單詞的開始與結(jié)尾。

例如:

grep man * 會匹配 Batman、manic、man等,

grep

grep  只匹配man,而不是Batman或manic等其他的字符串。

^:指匹配的字符串在行首,

$:指匹配的字符串在行 尾,

實(shí)踐在包含大量文件索引的.txt文本文件中,搜索符合要求的文件索引的內(nèi)容:

grep  .19-. files_choice.txt

以上就是Linux系統(tǒng)grep命令如何在文件內(nèi)容中查找關(guān)鍵字 ,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

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

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

AI