我正在尝试将大量数据列表转换为 CSV。它基本上是一个没有空格的巨大列表,并且行由换行符分隔。我制作了一个 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
问题是这非常慢,并且数据有大约 400k 行。我知道必须有更好的方法来实现这一点。基本上我只需要在一行的每个 12/17/22/34 等字符之后添加一个逗号。
任何帮助表示赞赏,谢谢!