Linux 彩色化查找?

Linux 彩色化查找?

是否可以对 find 的输出进行“着色”?

我有一个 find 命令,它搜索我所有服务器上的 /home,并执行“rm”某些文件。由于这些文件与我的其他 find 结果混在一起,因此我想给它们上色。

这可能吗?

答案1

使用 GNU find,您可以使用-printf而不是-print来自定义文件名的打印方式。(您也可以使用标准 find 来做到这一点,但要通过 来迂回-exec sh -c 'echo ...' {}。)例如,以下命令以绿色打印可执行文件,以默认颜色打印其他常规文件:

find . -type f \( -perm +100 -printf '\033[32m%p\033[0m\n' -or -print \)

答案2

我通常使用这个 bash+perl 函数来突出显示滚动的命令行文本:

highlight() { perl -pe "s/$1/\e[1;31;43m$&\e[0m/g"; }

像这样:

command | highlight "desired text"

答案3

find ... | grep -E --color 'words of interest|more good stuff|$'

美元符号使其匹配每一行的末尾,但没有任何内容可突出显示,因此它会输出没有匹配的行,同时突出显示您列出的其他内容。

答案4

我使用一个,例如,作为ls -d */ .*/跳过...目录的(别名)替代品:

查找 . -mindepth 1 -maxdepth 1 -type d -exec ls --color=auto -d {} \;

这样我不仅可以突出显示,而且相同的通常会应用的系统突出显示。

相关内容