locate命令 - 只查找整个单词匹配的位置

时间:2016-01-27 23:44:45

标签: terminal locate

在终端窗口中,如何使用命令locate仅返回整个单词存在的结果。

例如,我正在寻找与GO lang相关的所有文件。但是,键入locate go会返回从实际GO文件到Algorithm.php之类的所有内容。

有没有办法让这个命令只返回整个单词匹配的结果?

2 个答案:

答案 0 :(得分:3)

作为mlocate(一种广泛使用的实现)的一部分的locate命令接受正则表达式,所以你可以这样做

locate -r '\<go\>'

它的文档还说它有一个-w选项,如GNU grep选项用于单词匹配,但功能不同。但是你可以 将locategrep的结果与-w选项(字词)相关联,例如,

locate go |grep -w go

grep也接受正则表达式。 -w选项似乎不是标准选项(请参阅POSIX),但它也已广泛实施,例如Solaris

locate没有POSIX文档;某些实现功能明显低于其他实现。

答案 1 :(得分:0)

如果您正在寻找.go文件,可以使用locate "*.go"查找具有该扩展名的文件,而不是搜索“go”一词的完整文件名。