Command-Line

如何根據搜尋按需跟踪並對結果進行著色

  • March 12, 2020

嗨,我有一個包含大量資訊的日誌文件,很難找到我要查找的內容,所以我使用了這個命令,它只顯示我想在日誌中看到的內容,它將充當偵聽器當模式匹配時,只顯示搜尋結果

tail -f file.log | GREP_COLOR='01;36' egrep --color=always "\"stringOneExample\""

並且工作正常,問題是如果我管道另一個 grep

tail -f file.log | GREP_COLOR='01;36' egrep --color=always "\"jsonKeyOne\"" | GREP_COLOR='01;31' egrep --color=always "\"jsonKeyTwo\""

我認為不起作用,因為當我將一個管道傳輸到另一個時,因為第一個不包含第二個的條件,沒有顯示任何內容,所以我想同時(或更多) grep 對所有文件進行操作,然後給出每個字元串都有不同的顏色,以便更容易地發現差異

注意如果我在末尾添加 :|$ ,它將充當正常尾部並向我顯示許多我不想要的額外資訊

tail -f file.log | GREP_COLOR='01;36' egrep --color=always "\"stringOneExample\":|$"

最好使用:

grep -e 'jsonKeyOne' -e 'jsonKeyTwo'

……根據您的條件。根據您的 grep 風格, -E ‘jsonKeyOne|jsonKeyTwo’ 也是可能的。這是只有條款的最快選擇。

不同的顏色是這樣工作的:第一個學期只有彩色,所有其他線條沒有顏色,下一個學期用不同的顏色和所有其他線條,……直到最後一個學期有它的顏色和所有其他線條。

grep 或語法高亮,最好不要同時使用。

引用自:https://unix.stackexchange.com/questions/572586