Использование вывода одной команды в качестве аргумента для другой - PullRequest
1 голос
/ 05 апреля 2019

Я пытаюсь найти файл и передать номер строки в

vim +{lineNumber} filetoedit

к сожалению Vim выдает ошибку, сказав

Vim: Предупреждение: вход не от терминала

Пример:

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

1 Ответ

3 голосов
/ 05 апреля 2019

Команда, запускаемая xargs, наследует stdin от xargs, поэтому ее вход подключен к каналу от cut, а не к терминалу.

Присвойте результат переменной и используйтеэто.

line=$(grep -nF 'Im looking for this' testfile.txt | cut -f1 -d: )
vim "+$line" testfile.txt
...