Как передать 3-й аргумент в diff, который является вызовом другой программы с несколькими аргументами?

Я хочу использовать diff для сравнения текстового файла с выводом программы.

Я понимаю, что могу перенаправить вывод программы в файл, а затем сравнить 2 файла, но мне было интересно, можно ли сделать это так:

diff file1.txt ./myprog 1 2 3
2
задан 5 May 2018 в 17:02

1 ответ

В bash (и подобные оболочки, которые поддерживают его) можно использовать замену процесса

Напр. данный

$ cat file
foo
bar
baz

затем

$ diff file <(sed 2d file)
2d1
< bar

В этом случае программа sed и аргументы 2d и file


В оболочках, которые не поддерживают замену процесса с тех пор diff признает, что стандарт ввел Вас, мог сделать ./myprog 1 2 3 | diff file1.txt -

2
ответ дан 2 December 2019 в 03:33

Другие вопросы по тегам:

Похожие вопросы: