
Basicamente quero verificar a diferença do mesmo arquivo antes e depois de umsed
Tentei executar:
diff /opt/postTrades.sh <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh)
e
diff <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
e
diff <<< (sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
Sempre obtendo:
diff: missing operand after '/opt/postTrades.sh'
diff: Try 'diff --help' for more information.
Qual é a maneira correta de fazer isso? Obrigado.
Responder1
diff
precisa de dois operandos de arquivo. Com uma string here, você passa a entrada para diff
sua entrada padrão.
Para fazer diff
a leitura da entrada padrão, use -
como nome do arquivo:
$ diff file - <<<"$( sed 'expression' file )"
ou, mais portável,
$ sed 'expression' file | diff file -
Se você estiver usando um shell que suporta substituições de processos com <(...)
, like bash
e ksh93
, esta pode ser outra solução:
$ diff file <( sed 'expression' file )
A substituição do processo aparecerá como um arquivo diff
e é virtualmente "igual a":
$ sed 'expression' file >tempfile
$ diff file tempfile
$ rm tempfile