2つの「awk」コマンドの出力比較

2つの「awk」コマンドの出力比較

2つのコマンドの出力差を計算しようとしていますが、単純awkな試みが失敗するようです。これが私が試していることです:

diff $(awk '{print $3}' f1.txt | sort -u) $(awk '{print $2}' f2.txt | sort -u)

私には未知の理由のために動作しません。私はこの設定が他のコマンドの出力をキャプチャするためのものであると仮定しています$()が、私の「diff」呼び出しはここに提供されている2つの入力を認識しません。これを行う方法はありますか?

しかし、「書き込み」権限を持たない本番デバイスにログインしているため、これら2つのコマンドの出力を別々のファイルに書き込むための確実な解決策はありません。

答え1

diff両方のファイルの名前が必要なので、両方のファイルに両方の出力を配置して比較する必要があります。

awk '{print $3}' f1.txt | sort -u > out1
awk '{print $2}' f2.txt | sort -u > out2
diff out1 out2

ksh93または、bashまたはを使用してzshプロセス置換を使用できます。

diff <(awk '{print $3}' f1.txt | sort -u) <(awk '{print $2}' f2.txt | sort -u)

関連情報