diff
たとえば、2 つのファイルを で前処理した後に 2 つのファイルを処理したい場合、sed
一時ファイルなしでこれを行う方法はありますか?
私はこのようなことを試しましたが、(予想どおり)うまくいきませんでした:
(sed "$expr" file1; sed "$expr" file2) | diff - -
パイプを明示的に作成する方法などがあるのではないかと考えていました。
これをやってみてください:
diff <(sed "$expr" file1) <(sed "$expr" file2)
これはProcess Substitutionを使用します。<( )
一時的なファイル名に置き換えられます。そのファイルの書き込みまたは読み取りにより、バイトが内部のコマンドにパイプされます。多くの場合、ファイル リダイレクトと組み合わせて使用されます。
cmd1 2> >(cmd2)
http://mywiki.wooledge.org/ProcessSubstitution http://mywiki.wooledge.org/BashFAQ/024を参照してください。