我正在尝试运行watch,以便在我运行文件和更改内容时向我显示 grep 命令的输出。
这样做的通常方法可以正常工作,但缺少颜色:
watch grep 'something' **/*
Run Code Online (Sandbox Code Playgroud)
...因为我确实想要颜色,所以我这样做了:
watch grep 'something' **/* --color=always
Run Code Online (Sandbox Code Playgroud)
它仍然很难看,因为 watch 不会解析使颜色起作用的转义码。然后我发现了这个:
watch --color grep 'something' **/* --color=always
Run Code Online (Sandbox Code Playgroud)
嗯......它不起作用。输出以某种奇怪的方式分散/混合。由于某种原因,它只显示了一行,而没有watch --colorgrep 输出大约 20。
如何watch使用来自 的彩色输出grep?
使用以下内容:
mkdir grep_test; cd grep_test
echo "asdsad\nasdasd\nsaasdasd" > file1
echo "test\n123\ntest" > file2
Run Code Online (Sandbox Code Playgroud)
我创建了两个文件,然后运行以下命令:
grep test * --color=always
Run Code Online (Sandbox Code Playgroud)
它按预期工作,并输出(带有颜色和诸如此类):
file2:test
file2:test
Run Code Online (Sandbox Code Playgroud)
但是当我使用手表时:
watch --color 'grep test * --color=always'
Run Code Online (Sandbox Code Playgroud)
它什么都不输出。如果没有该--color选项,它会显示正确的输出,但没有解释 ANSI 转义符。我在 Fedora 25 上运行它,在里面有 zsh 的 tmux 会话中。
此外,watch -v输出是:
watch from procps-ng 3.3.10
Run Code Online (Sandbox Code Playgroud)
事实证明,手表确实支持颜色输出。但特别是对于grep你应该做一些解决方法(根据grep --color 添加 ANSI 代码 ESC[K - 这可以更改显示的文本)
watch --color "GREP_COLORS=ne grep --color=always .* *"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1532 次 |
| 最近记录: |