次のように、さまざまなディレクトリ(3つの異なる名前)に多くの(3つの例にすぎません)テキストファイルがあります。
ディレクトリ:A、ファイル名:run.txt 形式:txt タブ区切り
; file one
10 0.2 0.5 0.3
20 0.1 0.6 0.8
30 0.2 0.1 0.1
40 0.1 0.5 0.3
ディレクトリ:B、ファイル名:run.txt 形式:txt タブ区切り
; file two
10 0.2 0.1 0.2
30 0.1 0.6 0.8
50 0.2 0.1 0.1
70 0.3 0.4 0.4
ディレクトリ:C、ファイル名:run.txt 形式:txt タブ区切り
; file three
10 0.3 0.3 0.3
20 0.3 0.6 0.8
30 0.1 0.1 0.1
40 0.2 0.2 0.3
3 つの run.txt ファイルをすべて 1 つに結合し、最初の列の番号を付け直したいと考えています。結果の新しいファイルは次のようになります。
; file combined
10 0.2 0.5 0.3
20 0.1 0.6 0.8
30 0.2 0.1 0.1
40 0.1 0.5 0.3
50 0.2 0.1 0.2
70 0.1 0.6 0.8
90 0.2 0.1 0.1
110 0.3 0.4 0.4
120 0.3 0.3 0.3
130 0.3 0.6 0.8
140 0.1 0.1 0.1
150 0.2 0.2 0.3
これが私のコードです:
cat A/run.txt B/run.txt C/run.txt > combined.txt
(1) 1列目によるリナンバリングの処理方法がわからない
(2)「;」で始まるコメントの扱いもわかりません。
編集:
番号スキームについて明確にしましょう。A/run.txt、B/run.txt、および C/run.txt は、実際には並列実行されて 1 つに結合されます。そのため、それぞれに実行番号付きのサンプルが保存されます。ただし、ギャップは実行間で不均一になる可能性があります。
(1) 最初のファイル A/run.txt の場合 (ギャップは 10、20-10、30-20)
10, 10+10, 20+10, 30+10
(2) 2 番目のファイル B/run.txt の場合、10 から始まりますが、20 のギャップがあります (例: 30-10、50-70、70-50)。
40 (from last line of the first file) + 10 (first in file two) = 50,
50 + 20 = 70,70 + 20 = 90, 90+ 20 = 110
(3) ファイル C/run.txt は 10 から始まり、増分は 10 です
110 (last number in file 2) + 10 = 120, 120+ 10 = 130,
130+10 = 140, 140+10 = 150`