2つの異なるCSVファイルの2つの列を比較し、出力をマージします

Vivek nigam

TABLE1.csv

 DATE,      TIMESTAMP, ID,  START TIME, END TIME, DURATION
2019-04-05, 13:57:19,  1607,13:06:42,   13:07:12, 00:00:30
2019-04-05, 13:58:00,  2327,13:57:26,   13:57:43, 00:00:17
2019-04-24, 12:30:00,  1836,11:20:01,   12:30:00, 01:09:59
2019-04-24, 12:30:00,  1836,11:20:01,   12:30:00, 01:09:59
2019-04-24, 15:30:01,  1836,14:50:01,   15:30:01, 00:40:00
2019-04-24, 15:30:01,  1836,14:50:01,   15:30:01, 00:40:00

TABLE2.csv

KEY, ID,   NAME
407, 1607, RECORD1
1127,2327, RECORD2
636, 1836, RECORD3
664, 1864, RECORD4
703, 1903, RECORD5

TABLE1.csvのColoumn3とTABLE2.csvのColoumn2を一致させ、以下のように出力する必要があります。

 DATE,      TIMESTAMP, ID,   NAME,    START TIME, END TIME, DURATION
2019-04-05, 13:57:19,  1607, RECORD1, 13:06:42,   13:07:12, 00:00:30
2019-04-05, 13:58:00,  2327, RECORD2, 13:57:26,   13:57:43, 00:00:17
2019-04-24, 12:30:00,  1836, RECORD3, 11:20:01,   12:30:00, 01:09:59
2019-04-24, 12:30:00,  1836, RECORD3, 11:20:01,   12:30:00, 01:09:59
2019-04-24, 15:30:01,  1836, RECORD3, 14:50:01,   15:30:01, 00:40:00
2019-04-24, 15:30:01,  1836, RECORD3, 14:50:01,   15:30:01, 00:40:00

私はすべての例を試しました

awk -F',' 'FNR==NR.....
フィリポス

これsedTABLE2.csv、保留スペースの置換を収集してから、列の追加を実行します。

sed 's/^[^,]*, *\([0-9]*,[^,]*\)$/\1/
T2
H;d
:2
G
s/\([^,]*,[^,]*, *\)\([0-9]*,\)\([^[:cntrl:]]*\)\n.*\n\2\([^[:cntrl:]]*\)/\1\2\4, \3/
P;d' TABLE2.csv TABLE1.csv

必要に応じて、変更された見出しに何かを追加する必要があります。

  • s/^[^,]*, *\([0-9]*,[^,]*\)$/\1/TABLE2.csvから2番目と3番目の列を抽出しますか
  • T2:2置換が行われなかった場合(したがって、TABLE2.csv行の場合)にジャンプします
  • 変更されたTABLE2.csv行はH古いスペースに追加されてからd削除されます(この行の実行を停止します)
  • :2ジャンプマークです。以下のすべては、TABLE1.csv行に対してのみ行われます。
  • G ルックアップテーブルをホールドスペースからパターンスペースに追加します
  • s/\([^,]*,[^,]*, *\)\([0-9]*,\)\([^[:cntrl:]]*\)\n.*\n\2\([^[:cntrl:]]*\)/\1\2\4, \3/[0-9]*,ルックアップテーブルでID()の出現を検索し、一致するフィールドを追加します
  • P(ルックアップテーブルを追加せずに)行を出力し、その行のd実行を停止します。

詳細な説明については、あるファイルで定義された置換を別のファイルで実行する方法を参照してください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Unixは異なるヘッダーを持つ2つのcsvファイルをマージします

分類Dev

2つのファイルの文字列を比較し、その出力をマージします

分類Dev

2つの異なる列を持つ複数のファイル(2つ以上)を比較します

分類Dev

2つのファイルの列をマップし、異なる値を出力します

分類Dev

awk を使用して 2 つの異なるファイルの 1 つの列をマージする方法

分類Dev

2つの異なるtxtファイルウィンドウの2つの列を比較します

分類Dev

2つのファイルを比較し、異なる両方のファイルの値を出力する方法

分類Dev

2つの異なる.tsvファイルの2列を比較し、出力を新しいtsvファイルに書き込みます

分類Dev

2つの異なるcsvファイルを比較し、すべての変更を新しいcsvに出力します

分類Dev

2つのcsvファイルを列と値で比較し、異なる値の行番号を表示する

分類Dev

2つの異なるExcelファイルの値を比較しますか?

分類Dev

C#で2つの異なるCSVファイルの行の値を比較します

分類Dev

2 つの異なる csv ファイルを比較してメールを送信する

分類Dev

多くの列を持つawkを使用して2つのファイルを比較し、データが異なる列を取得します

分類Dev

2つの大きなcsvファイルをマージします

分類Dev

2つの異なるファイルの2つの列のペアを比較し、一致を水平方向にマージして印刷するにはどうすればよいですか(BASHまたはAWKの優先)?

分類Dev

2つの異なるcsv / excelファイルの列「名前」を比較し、両方が同じ名前である場合は、そのデータを無視して残りの出力を表示します

分類Dev

順序が異なる2つのファイルのデータをマージします。

分類Dev

Python:2つのcsvファイルを比較して違いを出力する

分類Dev

PowerShellで2つのCSVファイルを比較して出力を作成する

分類Dev

Powershellは、キーフィールドなしで異なるファイルの2つの列をマージします

分類Dev

awk-2つのファイルの2つの列を比較し、共通の行を出力します

分類Dev

AWK:異なるOFSで2つの出力ファイルを生成します

分類Dev

2 つのファイルの異なる列を比較して、最初のファイルに出力するにはどうすればよいですか?

分類Dev

perlを使用して一致およびマージする2つのcsvファイルを比較する

分類Dev

2つのCSVファイルを1つにマージします

分類Dev

2つのファイルを1つの列でマージします-awk

分類Dev

同じフォルダの2つのバージョンを比較し、異なるファイルの名前を取得します

分類Dev

awkを一致させ、列入力を変更し、出力ファイルに列を追加しながら2つのファイルをマージします

Related 関連記事

  1. 1

    Unixは異なるヘッダーを持つ2つのcsvファイルをマージします

  2. 2

    2つのファイルの文字列を比較し、その出力をマージします

  3. 3

    2つの異なる列を持つ複数のファイル(2つ以上)を比較します

  4. 4

    2つのファイルの列をマップし、異なる値を出力します

  5. 5

    awk を使用して 2 つの異なるファイルの 1 つの列をマージする方法

  6. 6

    2つの異なるtxtファイルウィンドウの2つの列を比較します

  7. 7

    2つのファイルを比較し、異なる両方のファイルの値を出力する方法

  8. 8

    2つの異なる.tsvファイルの2列を比較し、出力を新しいtsvファイルに書き込みます

  9. 9

    2つの異なるcsvファイルを比較し、すべての変更を新しいcsvに出力します

  10. 10

    2つのcsvファイルを列と値で比較し、異なる値の行番号を表示する

  11. 11

    2つの異なるExcelファイルの値を比較しますか?

  12. 12

    C#で2つの異なるCSVファイルの行の値を比較します

  13. 13

    2 つの異なる csv ファイルを比較してメールを送信する

  14. 14

    多くの列を持つawkを使用して2つのファイルを比較し、データが異なる列を取得します

  15. 15

    2つの大きなcsvファイルをマージします

  16. 16

    2つの異なるファイルの2つの列のペアを比較し、一致を水平方向にマージして印刷するにはどうすればよいですか(BASHまたはAWKの優先)?

  17. 17

    2つの異なるcsv / excelファイルの列「名前」を比較し、両方が同じ名前である場合は、そのデータを無視して残りの出力を表示します

  18. 18

    順序が異なる2つのファイルのデータをマージします。

  19. 19

    Python:2つのcsvファイルを比較して違いを出力する

  20. 20

    PowerShellで2つのCSVファイルを比較して出力を作成する

  21. 21

    Powershellは、キーフィールドなしで異なるファイルの2つの列をマージします

  22. 22

    awk-2つのファイルの2つの列を比較し、共通の行を出力します

  23. 23

    AWK:異なるOFSで2つの出力ファイルを生成します

  24. 24

    2 つのファイルの異なる列を比較して、最初のファイルに出力するにはどうすればよいですか?

  25. 25

    perlを使用して一致およびマージする2つのcsvファイルを比較する

  26. 26

    2つのCSVファイルを1つにマージします

  27. 27

    2つのファイルを1つの列でマージします-awk

  28. 28

    同じフォルダの2つのバージョンを比較し、異なるファイルの名前を取得します

  29. 29

    awkを一致させ、列入力を変更し、出力ファイルに列を追加しながら2つのファイルをマージします

ホットタグ

アーカイブ