您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(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è)資訊頻道。
免責(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)容。