2つのテキストファイルがあり、1つには次の内容が含まれています。
Id Value
1 apple
2 orange
3 mango
4 banana
5 strawberry
6 papaya
他のファイルにも同様のエントリがあります
Id Value
6 strawberry
4 banana
3 orange
1 mango
2 papaya
5 straw berry
値列のIDとその文字列を一致させ、文字列の正確性を見つける必要があります。これはどのように達成できますか?
ベストアンサー1
各ファイルに常に同じ数のエントリがあり、各IDが異なるファイルの同じIDに関連付けられている場合は、次のことができます(これは概念証明であるため、改善する必要があります)。
$ join -j1 <(sort -n file1.txt) <(sort -n file2.txt) |
awk '{if($2!=$3){k="==> BUG"}else {k=" ==> OK"}print $0,k}'
Id Value Value ==> OK
1 apple mango ==> BUG
2 orange papaya ==> BUG
3 mango orange ==> BUG
4 banana banana ==> OK
5 strawberry straw berry ==> BUG
6 papaya strawberry ==> BUG
たとえば、ID#4が2番目のファイルにない場合、「現状のまま」は機能しません。
ヘッダーを削除してBUG
行のみを保持する必要があります。
$ join -j1 <(sort -n file1.txt | tail -n+2) <(sort -n file2.txt | tail -n+2) |
awk '($2!=$3){print $0," ==> BUG"}'