Como passar o terceiro argumento para diff que é uma chamada para outro programa com múltiplos argumentos?

2

Eu quero usar diff para comparar um arquivo de texto com a saída de um programa.

Sei que posso redirecionar a saída do programa para um arquivo e comparar dois arquivos, mas queria saber se é possível fazer assim:

diff file1.txt ./myprog 1 2 3
    
por arcomber 05.05.2018 / 15:55

1 resposta

2

Em bash (e shells semelhantes que o suportam), pode utilizar substituição de processos

dado

$ cat file
foo
bar
baz

então

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

Nesse caso, o programa é sed e os argumentos são 2d e file

Em shells que não suportam a substituição de processos, uma vez que diff aceita entrada padrão, você pode fazer ./myprog 1 2 3 | diff file1.txt -

    
por steeldriver 05.05.2018 / 16:05