Linux中的grep
命令是一個非常強大的文本搜索工具,它支持正則表達式(regex)語法
基本正則表達式:
.
:匹配任意單個字符。*
:匹配前面的字符0次或多次。^
:匹配行首。$
:匹配行尾。[abc]
:匹配方括號內的任意一個字符(a、b或c)。[^abc]
:匹配不在方括號內的任意一個字符。\{m,n\}
:匹配前面的字符至少m次,至多n次。例如,a\{2,\}
匹配至少兩個連續的 “a”。使用-E
選項來啟用擴展正則表達式:
?
:匹配前面的字符0次或1次。+
:匹配前面的字符1次或多次。|
:表示或,用于匹配多個模式之一。()
:用于分組,將幾個字符單元進行處理。{m,n}
:匹配前面的字符至少m次,至多n次。例如,a{2,}
匹配至少兩個連續的 “a”。使用-P
選項來啟用Perl兼容正則表達式(PCRE):
\d
:匹配數字。\D
:匹配非數字。\s
:匹配空白字符(空格、制表符等)。\S
:匹配非空白字符。\w
:匹配單詞字符(字母、數字或下劃線)。\W
:匹配非單詞字符。其他技巧:
grep -v
來反向匹配,即顯示不符合條件的行。grep -i
來進行不區分大小寫的匹配。grep -o
來僅輸出匹配到的部分。grep -A n
、grep -B n
和grep -C n
來顯示匹配行的上下文(后n行、前n行或前后n行)。grep -r
或grep -R
來遞歸搜索目錄中的文件。grep -f file1 file2
從file1中讀取模式并在file2中搜索這些模式。熟練掌握這些技巧可以幫助你更高效地使用grep
進行文本搜索。