3

diffたとえば、2 つのファイルを で前処理した後に 2 つのファイルを処理したい場合、sed一時ファイルなしでこれを行う方法はありますか?

私はこのようなことを試しましたが、(予想どおり)うまくいきませんでした:

(sed "$expr" file1; sed "$expr" file2) | diff - -

パイプを明示的に作成する方法などがあるのではないかと考えていました。

4

1 に答える 1

5

これをやってみてください:

diff <(sed "$expr" file1) <(sed "$expr" file2)

これはProcess Substitutionを使用します。<( )一時的なファイル名に置き換えられます。そのファイルの書き込みまたは読み取りにより、バイトが内部のコマンドにパイプされます。多くの場合、ファイル リダイレクトと組み合わせて使用​​されます。

cmd1 2> >(cmd2)


http://mywiki.wooledge.org/ProcessSubstitution http://mywiki.wooledge.org/BashFAQ/024を参照してください。

于 2013-09-25T18:41:11.243 に答える