将'find'命令的输出重定向到'vim'

时间:2011-02-01 20:35:49

标签: vim redirect find

我正在查找$ PWD -name'文件名'| vim -

期望在vim编辑器中打开文件文件名。但它不起作用。 在这种情况下,我确信只存在一个名为'filename'的文件。

find的结果也给出了stdout的完整路径。

4 个答案:

答案 0 :(得分:24)

vim "$(find "$PWD" -name 'filename')"

find "$PWD" -name 'filename' -exec vim {} \;

(顺便说一句,您可以删除"$PWD"find默认情况下从当前目录开始搜索。)

答案 1 :(得分:8)

find . -name 'filename' -print0 | xargs -0 vim

也应该有效。您可能想要阅读xargs,这是一个很容易了解的事情。

答案 2 :(得分:1)

在@ idbrii的评论中提及,但我最喜欢的是:

find . -name 'filename' -type f -exec vim {} \+

这会打开在其自己的缓冲区中找到的每个文件,随时可以使用:next:prev进行导航。在OSX上测试过,但我相当肯定它也适用于Linux。

答案 3 :(得分:1)

我发现一种很容易的方法是用反引号(大多数键盘上的波浪号下的字符)将find命令括起来,并将其传递给vim。

vim `find . -name myfile`

实际上,您可以对任何命令使用backtick来获取命令的文字字符串输出。