
Básicamente quiero comprobar la diferencia del mismo archivo antes y después de unsed
Intenté ejecutar:
diff /opt/postTrades.sh <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh)
y
diff <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
y
diff <<< (sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
Siempre obteniendo:
diff: missing operand after '/opt/postTrades.sh'
diff: Try 'diff --help' for more information.
¿Cuál es la forma correcta de hacerlo? Gracias.
Respuesta1
diff
necesita dos operandos de archivo. Con una cadena aquí, pasa la entrada a diff
su entrada estándar.
Para realizar diff
la lectura desde la entrada estándar, utilice -
como nombre de archivo:
$ diff file - <<<"$( sed 'expression' file )"
o, más portátilmente,
$ sed 'expression' file | diff file -
Si está utilizando un shell que admite sustituciones de procesos con <(...)
, like bash
y ksh93
, esta puede ser otra solución:
$ diff file <( sed 'expression' file )
El proceso de sustitución se mostrará como un archivo diff
y es prácticamente "igual que":
$ sed 'expression' file >tempfile
$ diff file tempfile
$ rm tempfile