
基本的には同じファイルの変更前と変更後の差分を確認したいのですがsed
実行しようとしました:
diff /opt/postTrades.sh <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh)
そして
diff <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
そして
diff <<< (sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
常に取得:
diff: missing operand after '/opt/postTrades.sh'
diff: Try 'diff --help' for more information.
正しいやり方は何ですか? ありがとうございます。
答え1
diff
2 つのファイル オペランドが必要です。here 文字列を使用して、入力をdiff
標準入力に渡します。
diff
標準入力から読み取るには、-
ファイル名として以下を使用します。
$ diff file - <<<"$( sed 'expression' file )"
あるいは、もっとポータブルに言えば、
$ sed 'expression' file | diff file -
やの<(...)
ような、によるプロセス置換をサポートするシェルを使用している場合は、これが別の解決策になる場合があります。bash
ksh93
$ diff file <( sed 'expression' file )
プロセス置換はファイルとして表示されdiff
、実質的に「同じ」になります。
$ sed 'expression' file >tempfile
$ diff file tempfile
$ rm tempfile