我有一個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,因此您的腳本可能更有效。如果您編輯您的問題以包含簡潔,可測試的樣本輸入和預期輸出,我們可以爲您提供幫助。實際上,在這一點上,你可能希望把它作爲一個單獨的後續問題,因爲你已經接受了這個答案。 –