从pipe命令的输出中使用vim打开文件

时间:2015-02-25 12:49:53

标签: vim sed

我在文本文件abc.txt中有一个文件列表。 我必须从文件中读取第n行并使用vim打开文件。 我已经这样做但是第n行的文件没有打开: -

sed -n 4p abc.txt | vim -

尝试从abc.txt获取第4行并使用vim打开它。但我得到的输出是该特定行号的文件内容: - enter image description here

2 个答案:

答案 0 :(得分:3)

正确的命令是这样的:

vim "$(sed -n 4p abc.txt)"

不同之处在于,它将sed的输出作为第一个参数传递给vim。结果,Vim将打开该文件。

在您键入的命令中,sed的输出通过管道传输到vim的标准输入。由于您将' - '作为Vim的参数传递,因此它假定要编辑的文本是通过标准输入传递的内容。此文本是文件名,但不是文件的内容。

答案 1 :(得分:1)

是的,我明白了。 命令是

vim `sed -n 4p abc.txt`