
Im Grunde möchte ich den Unterschied der gleichen Datei vor und nach einemsed
Versucht auszuführen:
diff /opt/postTrades.sh <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh)
Und
diff <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
Und
diff <<< (sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
Immer erhalten:
diff: missing operand after '/opt/postTrades.sh'
diff: Try 'diff --help' for more information.
Wie geht das richtig? Danke.
Antwort1
diff
benötigt zwei Dateioperanden. Mit einem Here-String übergeben Sie die Eingabe an diff
die Standardeingabe.
Um diff
das Lesen von der Standardeingabe durchzuführen, verwenden Sie -
als Dateinamen:
$ diff file - <<<"$( sed 'expression' file )"
oder, tragbarer,
$ sed 'expression' file | diff file -
Wenn Sie eine Shell verwenden, die Prozessersetzungen mit <(...)
, like bash
und unterstützt ksh93
, kann dies eine weitere Lösung sein:
$ diff file <( sed 'expression' file )
Die Prozessersetzung wird auch als Datei angezeigt diff
und ist praktisch „dasselbe wie“:
$ sed 'expression' file >tempfile
$ diff file tempfile
$ rm tempfile