Grep
彩色 grep 輸出被 watch 命令碎片化
我正在嘗試執行
watch
,以便在我執行文件和更改內容時向我顯示 grep 命令的輸出。這樣做的通常方法很好,但缺少顏色:
watch grep 'something' **/*
…因為我確實想要顏色,所以我這樣做了:
watch grep 'something' **/* --color=always
它仍然很難看,因為 watch 不會解析使顏色起作用的轉義碼。於是我發現了這個:
watch --color grep 'something' **/* --color=always
好吧……它不起作用。輸出以某種奇怪的方式分散/混合。由於某種原因,它只顯示了一行,而沒有
watch --color
grep 輸出大約 20。如何
watch
使用來自 的彩色輸出grep
?孤立案例:
使用以下內容:
mkdir grep_test; cd grep_test echo "asdsad\nasdasd\nsaasdasd" > file1 echo "test\n123\ntest" > file2
我創建了兩個文件,然後執行以下命令:
grep test * --color=always
哪個按預期工作,並輸出(帶有顏色和諸如此類的東西):
file2:test file2:test
但是當我使用手錶時:
watch --color 'grep test * --color=always'
它什麼也不輸出。如果沒有該
--color
選項,它會顯示正確的輸出,儘管沒有解釋 ANSI 轉義。我在 Fedora 25 上執行這個,在裡面有 zsh 的 tmux 會話。此外,
watch -v
輸出是:watch from procps-ng 3.3.10
事實證明,手錶確實適用於顏色輸出。但特別是對於grep你應該做一些解決方法(根據[grep –color 添加 ANSI 程式碼 ESCK - 這可以改變顯示的文本)
watch --color "GREP_COLORS=ne grep --color=always .* *"