有測試檔案test.txt一枚,內容如下
aaabbbccc
aaadddeee
abcsdfjasldjf
bcdokm
abc一、基本搜尋常用
1、現在想把abc okm篩選出來
結果:abc
okm2、把帶a的行篩選出來,不區分大小寫
grep -i 「a」 test.txt
結果:aaabbbccc
aaadddeee
abcsdfjasldjf
abc3、把帶a的行篩選出來,只要小寫的
grep 「a」 test.txt
結果:aaabbbccc
abcsdfjasldjf
4、把出現abc篩選出來,不區分大小寫
grep -i 「abc」 test.txt
結果:abc
sdfjabcasldjf
abc5、把出現abc整個單詞的篩選出來
grep -w 「abc」 test.txt
結果:abc
6、把出現abc整個單詞篩選出來,不區分大小寫
grep -wi 「abc」 test.txt
結果:abc
abc二、
明確要求搜尋子目錄:grep -r
或忽略子目錄:grep -d skip
三、正則匹配
格式grep [options]
[options]主要引數:
-c:只輸出匹配行的計數。
-i:不區分大 小寫(只適用於單字元)。
-h:查詢多檔案時不顯示檔名。
-l:查詢多檔案時只輸出包含匹配字元的檔名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文字的錯誤資訊。
-v:顯示不包含匹配文字的所有行。
pattern正規表示式主要引數:
\: 忽略正規表示式中特殊字元的原有含義。
^:匹配正規表示式的開始行。
$: 匹配正規表示式的結束行。
>:到匹配正規表示式的行結束。
[ ]:單個字元,如[a]即a符合要求 。
[ - ]:範圍,如[a-z],即a、b、c一直到z都符合要求 。
。:所有的單個字元。
* :有字元,長度可以為0。
grep -i pattern files :不區分大小寫地搜尋。預設情況區分大小寫,
grep -l pattern files :只列出匹配的檔名,
grep -l pattern files :列出不匹配的檔名,
grep -w pattern files :只匹配整個單詞,而不是字串的一部分(如匹配』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 即可查詢總行數
簡單例項
grep 『test』 d*
顯示所有以d開頭的檔案中包含 test的行。
grep 『test』 aa bb cc
顯示在aa,bb,cc檔案中匹配test的行。
grep 『[a-z]』 aa
顯示所有包含每個字串至少有5個連續小寫字元的字串的行。
more test.txt | grep 『[a-b]』 範圍 ;如[a-z]即a,b,c一直到z都符合要求
結果:aaabbbccc
abcsdfjabcasldjf
bcdgrep 『^a』 test.txt 搜尋以a開頭的
linux的grep的用法
grep a after 錨定行的開始 如 grep 匹配所有以grep開頭的行。錨定行的結束 如 grep 匹配所有以grep結尾的行。匹配乙個非換行符的字元 如 gr.p 匹配gr後接乙個任意字元,然後是p。匹配零個或多個先前字元 如 grep 匹配所有乙個或多個空格後緊跟grep的行。一起用代...
linux中grep的用法
過濾多個關鍵字 grep e root mysql etc passwd root 0 0 root root bin bash operator 11 0 operator root sbin nologin mysql 500 500 home mysql sbin nologin 排除多個關鍵...
linux中grep的用法
grep 引數 匹配項 檔案a 檔案b grep i the text.txt 忽略the的大小寫在檔案中進行匹配 grep v the text.txt 在檔案中匹配不含the行 grep n the text.txt 在檔案中匹配the並且顯示行號 grep c the text.txt 統計匹...