我有一个4.5GB的测试文件,我正在尝试格式化它。使用sed格式化大文件
首先,我试图用','替换选项卡,并用"
分隔每个列字段。
其次我用awk和sed格式化文件中的日期字段。
这里是我使用的是什么:
对于格式:
cat test_sample.csv | sed -e 's/"/""/g' | sed -e 's/\t/","/g' | sed -e 's/$/"/g' | sed -e 's/^/"/' > test_sample.csv
对于日期:
awk 'BEGIN{FS=OFS="\",\""} NR>1{cmd = "date -d \"" $10 "\" \"+%Y-%m-%d\"";cmd | getline out; $10=out; close("uuidgen")} 1' test_sample.csv > _report.tmp && mv _report.tmp test_sample.csv
这些命令运行过程中出现的小文件罚款,但都失败,并清除所有文件中的数据。
请有人可以帮我格式化此文件吗?
你有(或者你可以安装)GNU awk的时间函数吗? –
您可能不需要调用日期和getline,因此您的脚本可能更有效。如果您编辑您的问题以包含简洁,可测试的样本输入和预期输出,我们可以为您提供帮助。实际上,在这一点上,你可能希望把它作为一个单独的后续问题,因为你已经接受了这个答案。 –