私はスクリプトが初めてです。 Unixでファイルのマージの問題が発生しました。方向を探していましたが、偶然このサイトを見つけました。すばらしい投稿と回答をたくさん見ましたが、私の問題に対する解決策が見つかりませんでした。どんな助けにも感謝します..
3つのcsvファイル(> Apex_10_Latest.csv、Apex_20_Latest.csv、Apex_30_Latest.csv)があります。この3つのファイルの列数は異なります。通常、番号によっては、最新のファイルの末尾に新しい列が追加されることがあります。だから私は最新のヘッダーを取得し、3つのファイルすべてのデータを新しいファイルApex.csvにスタックしたいと思います。最新のファイルよりも列数が少ない古いファイルのデータをスタックするときは、適切な区切り文字を使用してデータをNULLで埋めたいと思います。
また、この作業は、同じフォルダー内の複数のファイルセット(それぞれ3つのファイル)に対して繰り返し実行する必要があります。 - Apex_10_Latest.csv, Apex_20_Latest.csv, Apex_30_Latest.csv - Apex.csv로 병합 - Code_10_Latest.csv, Code_20_Latest.csv, Code_30_Latest.csv - Code.csv로 병합 - Trans_10_Latest.csv, Trans_20_Latest.cs v. Trans_30_Latest.csv - ImportTrans.csv マージ
ソースファイルの形式とターゲットファイルの形式は次のとおりです。ソースファイル:
Apex_30_Latest.csv:
ABCD
1,2,3,4
2,3,4,5
3,4,5,6Apex_20_Latest.csv:
A、雨、種
4,5,6
5,6,7
6,7,8Apex_10_Latest.csv:
A、雨
7,8
8,9
9,10
意図したターゲットファイル:
- Apex.csv
ABCD
1,2,3,4
2,3,4,5
3,4,5,6
4,5,6,,
5,6,7,,
6,7,8,,
7,8,,,
8, 9,,,
9,10,,,
ありがとうございます...
ベストアンサー1
ミラー(http://johnkerl.org/miller/doc/) いつものように簡単
mlr --csv unsparsify Apex_*_Latest.csv
あなたのため
A,B,C,D
1,2,3,4
2,3,4,5
3,4,5,6
4,5,6,
5,6,7,
6,7,8,
7,8,,
8,9,,
9,10,,