使用一个命令的输出作为另一个命令的参数

时间:2019-04-05 01:09:08

标签: bash pipe xargs

我正在尝试grep文件,并将行号通过管道发送到

vim +{lineNumber} filetoedit

不幸的是,Vim抛出一个错误提示

  

Vim:警告:输入不是来自终端

一个例子:

grep -nF 'Im looking for this' testfile.txt | cut -f1 -d: | xargs vim +{} testfile.tx

1 个答案:

答案 0 :(得分:3)

xargs运行的命令从xargs继承了stdin,因此其输入从cut连接到管道,而不是从终端连接。 将结果分配给变量并使用它。 line = $(grep -nF'我正在寻找这个'testfile.txt | cut -f1 -d:) vim“ + $ line” testfile.txt