How to Exclude a Word with grep

grep命令在用於在文本數據中搜索定義的字符串,字符,單詞或正則表達式匹配的行和代碼片段時非常有用。 儘管grep的大多數用途是對語法匹配的數據進行排序,但是如果我們想用grep排除單詞或字符串怎麼辦? 用grep排除與在grep中查找匹配項是類似的,今天讓我們看看如何使用grep排除字符串匹配和單詞。

grep是與操作系統無關的實用程序,因此您可以在Mac OS,Linux,Unix或任何其他使用grep的系統中使用排除。

如何使用grep排除單個單詞

排除具有字符串或語法匹配行數據最簡單方法是使用grep和-v。

例如,假設我們使用cat在命令行中輸出文件,但是我們想排除所有包含“google”的行,那麼語法將如下所示:

cat webserver.log | grep -v “google”

輸出將是webserver.log文本中不包括與”google”匹配字符串的數據。

也可以直接在文件上使用grep,並根據單詞或語法排除匹配,如下所示:

grep -v “google” webserver.log

如何使用grep排除多個字符串或單詞

既然我們知道如何排除單個單詞,下一個明顯的問題是使用grep排除多個單詞。 這同樣簡單,並且有幾種不同的方法可以使用-v標誌和-e標誌來完成此操作。

首先,以上述示例為例,在透過管道傳輸到grep的文件中使用cat,並排除與兩個單詞匹配的任何數據:“google”和“baidu”,如下所示:

cat webserver.log | grep -v -e “google” -e “baidu”

包含“ google”或“ baidu”的每一行將從打印結果中排除。

您還可以像以前一樣直接在文件上使用grep

grep -v -e “google” -e “baidu” webserver.log

另一種方法是通過使用管道來分隔每個匹配項來用grep分隔要排除的內容,如下所示:

grep -Ev “google|baidu” webserver.log

如果在示例文本文件上測試了這些選項中的任何一個,無論採用哪種方法,輸出都是相同的,每個選項都會輸出排除了包含目標短語,語法,單詞或文本匹配項的數據。