データの大きなリストを CSV に変換しようとしています。基本的にスペースのない巨大なリストで、行は改行で区切られています。基本的にドキュメントをループし、行を awk し、バイト範囲を切り取り、コンマを追加して行末に追加する bash スクリプトを作成しました。次のようになります。
awk -v n=$x 'NR==n { print;exit}' PROP.txt | cut -c 1-12 | tr -d '\n' >> $x.tmp
awk -v n=$x 'NR==n { print;exit}' PROP.txt | cut -c 13-17 | tr -d '\n' | xargs -I {} sed -i '' -e 's~$~,{}~' $x.tmp
awk -v n=$x 'NR==n { print;exit}' PROP.txt | cut -c 18-22 | tr -d '\n' | xargs -I {} sed -i '' -e 's~$~,{}~' $x.tmp
awk -v n=$x 'NR==n { print;exit}' PROP.txt | cut -c 23-34 | tr -d '\n' | xargs -I {} sed -i '' -e 's~$~,{}~' $x.tmp
問題は、これが非常に遅く、データに約 40 万行あることです。これを達成するためのより良い方法があるはずです。基本的に、行の 12/17/22/34 などの各文字の後にコンマを追加するだけです。
どんな助けでも大歓迎です、ありがとう!