OK、列の値に基づいて分割する必要がある csv ファイルがありますが、各ファイルにヘッダーを印刷することはできません。
現在私は使用しています:
awk "FS =\",\" {output=$3\".csv\"; print $0 > output}" test.csv
列 3 に基づいてファイル ファイルを分割しますが、各ファイルにヘッダーを追加する方法がわかりません。
ハイ&ローを検索しましたが、ワンライナーで機能するソリューションが見つかりません...
アップデート
これまでのところ、1 つのライナーが機能しています。
awk -F, "NR==1{hdr=$0;next}!($3 in files){files[$3]=1;print hdr>$3\".csv\"}{print>$3\".csv\"}" test.csv
または test.awk で:
BEGIN{FS=","} NR==1 {hdr=$0;next}!($3 in files) {files[$3]=1;print hdr>$3".csv"}{print>$3".csv"}
実行するコマンド:
awk -f test.awk test.csv
ここでの助けに本当に感謝しています。私は何時間も努力してきましたが、解決すべきことがいくつか残っています。
1) ヘッダーの後に挿入される空白行 2) 指定されたフィールドのデータを並べ替える
さらに行を数えて、別のファイルから参照番号をカットしたいのですが、これは AWK で可能ですか、それともジョブに間違ったツールを使用していますか?
再度、感謝します。