以下はサンプルデータです。この操作は、何百万というレコードがあるファイルに対して実行する必要があるため、最適な方法が必要です。本質的には、第2列を、第4列の最初の2文字を連結し、第2列の最初の3つのフィールド( '_'区切り)を除いて更新することを検討しています。awkを使用して複数の区切り文字を持つcsvファイルを変換する方法
私は非常に時間がかかる行を1行ずつ読み書きすることを試みています。
234234234,123_33_3_11111_asdf_asadfas,01,06_1234,4325325432,2
234234234,123_11_2_234111_aadsvfcvxf_anfews,01,07_4444,423425432,2
234234234,123_33_3_11111_mlkvffdg_mlkfgufks,01,08_2342,436876532,2
234234234,123_33_3_11111_qewf_mkhsdf,01,09_68645,43234532,2
出力として必要とされています:私は
awk -F, '{print $1","substr($4,1,2)"_"cut -f4-6 -d'_'($2)","$3","$4","$5","$6}'
入力データのようなawkの何かと何かが必要
234234234,06_11111_asdf_asadfas,01,06_1234,4325325432,2
234234234,07_234111_aadsvfcvxf_anfews,01,07_4444,423425432,2
234234234,08_11111_mlkvffdg_mlkfgufks,01,08_2342,436876532,2
234234234,09_11111_qewf_mkhsdf,01,09_68645,43234532,2
あなたはあなたの試みと何が間違っているかの詳細を編集してください。コメントセクションはそのような情報の適切な場所ではありません。 –
また、 'awk'がPythonのようなスクリプト化されたソリューションと比べて特に効率的になるのでしょうか? –
私はこのデータを変換する必要があるサーバーにPythonを持っていないので、awkが好きです。この変換が必要な最大のファイルは75Gbです。 –