用颜色定位

用颜色定位

locate多次使用二进制在 1TB HDD 上搜索某些内容。

大多数时候,我得到了很多结果,我必须阅读每一行才能得到我正在寻找的东西。

locate如果能输出带有颜色的匹配模式就太好了(就像 grep --color 一样)

有什么办法可以做到这一点吗locate

答案1

最简单的方法就是写一个简单的外壳脚本结合了locategrep

在 $PATH 中的某个位置(例如/usr/local/bin/clocate)创建一个文件

#!/bin/sh
locate --regex "$1" | grep --color=auto "$1"

然后使其可执行,例如

chmod +x /usr/local/bin/clocate

并像使用它一样locate。该脚本只接受一种模式。

另一种方法是使用外壳函数:如果您使用bash外壳程序,则可以添加$HOME/.bashrc以下行:

clocate() { locate --regex  "$1" | grep --color=auto "$1"; }

您需要重新运行 bash 或重新获取源代码,.bashrc然后才能使用新命令。

请注意--regex的选项locate。您需要编写.*而不是* 匹配任意数量的字符。

答案2

这适用于两种模式 第一个模式在命令行中,第二个模式在邀请时。

#!/bin/sh
echo "Type the second argument."
read constraint
locate -i "$1" | grep -i $(echo "$constraint") |grep -i --color=auto -e $(echo "$1") -e $(echo "$constraint")
exit

相关内容