行を比較して2つのテキストをマージし、一部の列が似ている場合は、1つのテキストの行を選択します。

行を比較して2つのテキストをマージし、一部の列が似ている場合は、1つのテキストの行を選択します。

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の場合は!seentrueなので、これを増やし(trueにして)デフォルトのアクションを実行しますprint
  • true(2番目に同じフィールドが表示されます)の場合は!seenfalseで、awk行をスキップします。

おすすめ記事