私は2つの部分からなるawkの問題を抱えています:
最初の部分: 2 つのファイルの 2 番目の列を比較したい。一致する場合は、対応する値を出力ファイルに出力します。
2 番目の部分では、反対の情報も必要です。繰り返しますが、同じ 2 つのファイルの 2 番目の列を比較したいと思います。一意の文字列値がある場合 (ファイル 2 の列 2 ではなく、ファイル 1 の列 2 に表示されるものを意味します)。
最初の部分を解決するには: 次の awk を使用しました
awk 'NR==FNR { a[$1]=$2; next} $1 in a {print $0, a[$1]}' File2 File1
ここにあり、一致する値を識別する問題を解決しているようです。
ただし、ファイル 1 から一意の情報を識別し、それを 3 番目の出力ファイルに出力する解決策が見つからないようです。これを解決する方法について誰かが洞察を提供できますか?
入力の例は次のとおりです。
ファイル 1
A concept1 123
A concept2 123
A concept1 123
A concept1 123
A concept3 123
ファイル 2
B concept1 456
B concept4 456
B concept5 456
B concept1 456
B concept3 456
出力ファイル 3
concept4
concept5
ありがとうございました。
更新: オリジナルでは、1 つのファイルを他の 1 つのファイルと比較する質問をしました。このコードを変更して、1 つのファイルを他の複数のファイルと比較することはできますか?
例えば:
入力: FILE2、FILE3、FILE4...FILEn に対して一意の行を比較する FILE1 出力: FILE1 からのすべての一意の行を含む FILE。