Linux grep命令
grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來,它的使用權限是所有用戶。
格式
grep [options]
主要參數
[options]主要參數:
-
-c:只輸出匹配的行數。
-
-i:不區分大小寫。
-
-h:查詢多文件時不顯示文件名。
-
-l:查詢多文件時只輸出包含匹配字符的文件名。
-
-n:顯示匹配行及行號。
-
-s:不顯示不存在或無匹配文本的錯誤信息。
-
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數:
-
\:忽略正則表達式中特殊字符的原有含義。
-
^:匹配正則表達式的開始行。
-
$:匹配正則表達式的結束行。
-
\ <:從匹配正則表達式的行開始。
-
\ >:從匹配正則表達式的行結束。
-
[ ] :單個字符,如[A] 即A符合要求。
-
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求。
-
。:所有單個字符。
- *有字符,長度可以爲0。
grep命令常見用法
- 在文件中搜索一個單詞:
grep word file_name
grep "word" file_name
- 在多個文件中查找:
grep "word" fille_1 file_2 file_3
- 輸出除了word的所有行:
greo -v "word" file_name
- 標記匹配顏色:
grep "word" file_name --color=auto
- 使用正則表達式-E選項:
grep -E "[1-9]+"
或
egrep "[1-9]+"
- 只輸出文件中匹配到的部分-o選項:
echo this is a test line.|grep -o -E "[a-z]+\ ."
line.
echo this is a test line. |egrep -o [a-z]+\ ."
line.
- 搜索多個文件並查找匹配文本在那些文件中:
grep -l "test" file1 file2
- 在多級目錄中對文本進行遞歸搜索:
grep "test" . -r -n
. 表示當前目錄
- 忽略匹配樣式中的字符大小寫:
echo "hello word"|grep -i "HELLO"
hello
- 選項-e 制動多個匹配樣式:
echo this a test line|grep -e "is" -e "line" -o
is
line