我怎样才能通过制表符补全可能性进行 grep?

我怎样才能通过制表符补全可能性进行 grep?

当我在控制台中按下 Tab 键时,我得到这个输出

显示全部 2957 种可能性?(是或否)

有什么方法可以利用grep这 2957 种可能性吗?我想搜索所有包含单词“svn”的命令。

答案1

解决方案是 bash 内置的compgen。要从所有可用命令和可通过访问的命令别名中 grep 'svn' $PATH,请键入。

compgen -ac | grep svn

想要根据某个前缀进行搜索(例如所有以 开头的命令ecrypt)?使用常用表达。

compgen -ac | grep "^ecrypt"

答案2

您可以尝试使用compgen

例如:

compgen -ac | grep "svn"

答案3

这应该是等价的:

for x in `echo $PATH | sed 's/:/ /g'`; do ls $x | grep svn; done

答案4

也许{,.}*svn*在这里有帮助,例如ls -l /usr/bin/{,.}*svn*<tab>

但是,看看 Zsh!这里:http://www.jukie.net/bart/blog/zsh-tab-completion有一些很好的例子,说明它如何帮助减少制表符补全结果。这还包括否定,例如,如果您想要所有不带单词“foobar”的制表符补全结果,或者所有结果首先是偶数,子目录制表符补全等等。我改用 zsh 的原因是所有打开的终端之间共享历史记录。

相关内容