必要な次のシナリオがあります。
私は2つの非常に大きなファイルを持っています。各ファイルの行数は同じです。awk は、いくつかの条件を組み込んだ 2 つのファイルを結合できる便利なツールだと思います。提案してください。
File1
# header1, header2, header3, header4
1,2,3,4
11,12,13,14
21,22,23,24
31,32,33,34
41,42,43,44
File2
a d e f
a f g h
b p q
33 b p q
43 b x y
Final Output
1, 2, 3, 4, a, d, e, f
11, 12, 13, 14, a, f, g, h
21, 22, 23, 24, b, p, q
31, 32, 33, 34, b, p, q
41, 42, 43, 44, b, x, y
実際には file1 と file2 の間に接続があります。file1 の各行からいくつかのヘッダーが収集され、いくつかの小さなツールに基づいて file2 が生成されます。したがって、file1 の各行について、file2 の同じ行にいくつかの情報があります。そして、以下のロジックのように、これら 2 つのファイルを結合したいと考えました。
file2 の最初のエントリには「a」、「b」、またはこれに基づいて file1 のヘッダー 3 のいずれかが含まれます。「a」または「b」が含まれている場合は、「1、2、3、4、a、d」のように行を結合します。 、e、f"
file2 のエントリに file1 の header3 がある場合、「31、32、33、b、p、q」として結合します。
すべてのフィールドをコンマで区切る必要があります。そして、出力を他のファイルにダンプする必要があります。
私はPythonでも同じことを行うことができますが、ファイルが大きすぎるため、forループ処理に時間がかかりすぎて、多くのPython解釈時間が必要です..だから私はawkがそのようなタスクを行うためのより良いユーティリティだと思う.
提案してください。ありがとう。