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進行文本搜索。