(1). $ grep "pattern" filename
(2). 從stdin中讀取
[root@master1 test]# echo -e "this is a word\nnext line" | grep word
this is a word
(3). 單個grep對多個檔案進行搜尋
$ grep "match_text" file1 file2 file3...
(4). --color 在輸出中著重標出匹配到的單詞
$ grep word filename --color=auto
(5). grep使用正規表示式,需要新增-e選項或者使用egrep
$ grep -e "[a-z]+" filename
或者$ egrep "[a-z]+" filename
(6). -o 只輸出匹配到的文字
$ echo "this is a line." | egrep -o "[a-z]+\."
line. ## \. 匹配字元"."
(7). -v 列印包含match_pattern之外的所有行
$ grep -v match_pattern filename
(8). -c 統計檔案或文字中包含匹配字串的行數,並不是匹配的次數。
$ echo -e "1 2 3 4\nhello\n5 6" | egrep -c "[0-9]"
2(9). 要統計匹配項的數量,可以使用下面的方式
$ echo -e "1 2 3 4\nhello\n5 6" | egrep -o "[0-9]" | wc -l
(10). -n 列印出包含匹配字串的行數
$ grep -n "pattern" filename
如果涉及多個檔案,也會隨著輸出檔名
$ grep linux -n sample1.txt sample2.txt
sample1.txt:2:linux is fun
sample2.txt:2:planetlinux
(11). -b -o 列印匹配字串位於的字元或位元組偏移
$ echo gnu is not unix | grep -b -o "not"
7:not
從第乙個字元算起,起始值為0。not的偏移值是7,也就是說not是從第8個字元開始的。
(12). -l 搜尋多個檔案並找出匹配文字位於哪個檔案中
$ grep -l linux sample1.txt sample2.txt
sample1.txt
sample2.txt
1.遞迴搜尋檔案
在多級目錄中對文字進行遞迴搜尋:
$ grep "text" . -r -n ##命令中的「.」 指定了當前目錄
例:$ cd src_dir
$ grep "test_function()" . -r -n
./miscutils/test.c:16:test_function();
test_function()位於miscutils/test.c的第16行
2. -i 忽略樣式中的大小寫
$ echo hello world | grep -i "hello"
hello
3. 用grep匹配多個樣式
$ grep -e "pattern1" -e "pattern2"
例: $ echo this is a line of text | grep -e "this" -e "line" -o
this
line
4. 在grep搜尋中指定(include)或排除(exclude)檔案
目錄中遞迴搜尋所有.c和.cpp檔案
$ grep "text" . -r --include *.
搜尋中排除所有的readme檔案
$ grep "text" . -r --exclude "readme"
5. 列印匹配文字之前或之後的行
要列印匹配某個結果之後的3行,使用 -a選項:
$ seq 10 | grep 5 -a 3
5 6
7 8
要列印匹配某個結果之前的3行,使用 -b選項:
$ seq 10 | grep 5 -b 3
2 3
4 5
要列印匹配某個結果之前以及之後的3行,使用-c選項:
$ seq 10 | grep 5 -c 3
2 3
4 5
6 7
8
shell grep文字搜尋
grep語法 grep option string to find filename 選項與引數 1 i 忽略搜尋字串的大小寫 2 v 取反,即輸出不匹配的那些文字行 3 n 輸出行號 4 l 輸出能夠匹配模式的檔名,相反的選項為 l 5 q 靜默輸出 6 w 精準匹配 根據實際需求進行選擇即可 s...
shell grep字元查詢,新增命令
例項一 在當前目錄下test.html中查詢以 pdf 結尾的行,並將結果輸出到test.txt檔案中 more test.html grep pdf test.txt 例項二 參考 1 顯示當前目錄下test.txt所有行 2 顯示test.txt中以 c 開頭的行 more test.txt g...
shell grep命令及常見用法
背景 grep的全稱是global regular expression print,是linux中最強大的文字搜尋命令之一,常用於搜尋文字檔案中是否含有某些特定模式的字串。該命令以行為單位讀取文字並使用正規表示式進行匹配,匹配成功後列印出該行文字。命令格式 grep option string t...