Cat

如何在“cat”的輸出中突出顯示一個單詞?

  • December 25, 2013

我可以執行以下操作來查看“cat”的輸出中是否有可用的單詞:

cat filename | grep word

這會過濾輸出並僅顯示那些包含“單詞”的行。現在,是否可以僅突出顯示輸出中的“單詞”而不刪除其他行?

您可以將 EOL 與您的實際查詢一起使用 grep (如果您已經有別名 for grepuse --color,這是許多發行版中的預設設置,您可以在以下範例中省略它):

grep --color=auto 'word\|$' file

由於 EOL 不是真實字元,因此它不會突出顯示任何內容,但會匹配所有行。

如果您不想轉義管道字元,可以使用擴展正則表達式:

grep -E --color=auto 'word|$' file

如果你沒有可用的 GNU grep,這裡有一些更便攜的東西:

grepc()
{
 pattern=$1
 shift
 esc=$(printf "\033")
 sed 's"'"$pattern"'"'$esc'[32m&'$esc'[0m"g' "$@"
}

您可以使用以下程式碼之一自定義顏色

30m black
31m red
32m green
33m yellow
34m blue
35m magenta
36m cyan
37m white

使用7m而不是顏色程式碼會將字元串置於反向影片中。

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