Cat
如何在“cat”的輸出中突出顯示一個單詞?
我可以執行以下操作來查看“cat”的輸出中是否有可用的單詞:
cat filename | grep word
這會過濾輸出並僅顯示那些包含“單詞”的行。現在,是否可以僅突出顯示輸出中的“單詞”而不刪除其他行?
您可以將 EOL 與您的實際查詢一起使用 grep (如果您已經有別名 for
grep
use--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
而不是顏色程式碼會將字元串置於反向影片中。