2つのファイルのデータラインが同じであることを測定する2つの異なるファイルがあります。 File1の行が同じものを測定する出力行になるようにマージされた出力が必要です(file1の2行目とfile2の最初の行が同じものを測定します。1行の列1と列2の類似性が必要です。ファイル)。
...ファイル1:
1257, OBM , 47, 106, 1330
1257, IRK , 52, 104, 467
....
ファイル2:
1257, IRK , 50, 100, 400
1000, CTK , 47, 106, 1330
....
出力:
1257, OBM , 47, 106, 1330
1257, IRK , 52, 104, 467
1000, CTK , 47, 106, 1330
....
答え1
使用awk
:
awk -F',' '!seen[$1,$2]++' file1 file2
説明する:
- 最初は、キーフィールドを持つ配列エントリが割り当てられてい
$1,$2
ないため、falseです。 - falseの場合は
!seen
trueなので、これを増やし(trueにして)デフォルトのアクションを実行しますprint
。 - true(2番目に同じフィールドが表示されます)の場合は
!seen
falseで、awk
行をスキップします。