文字列とファイルの違い

文字列とファイルの違い

基本的に同じファイルの前後の違いを確認したいと思います。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

diff2つのファイルオペランドが必要です。 here-stringを使用すると、入力を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

おすすめ記事