0
我有一個2 GB的CSV文件,其中有幾列和幾百萬行(包括格式爲2010-12-15的日期列)。我期待將此CSV分成更小的CSV,並按日期排列在文件夾中(例如,2010年12月15日的所有條目都位於名爲20101215的文件夾內)。按日期分割文件
我對這個東西還相當陌生,但我知道拆分命令。你們能否指引我朝着正確的方向發展?
在此先感謝!
我有一個2 GB的CSV文件,其中有幾列和幾百萬行(包括格式爲2010-12-15的日期列)。我期待將此CSV分成更小的CSV,並按日期排列在文件夾中(例如,2010年12月15日的所有條目都位於名爲20101215的文件夾內)。按日期分割文件
我對這個東西還相當陌生,但我知道拆分命令。你們能否指引我朝着正確的方向發展?
在此先感謝!
根據您的數據是如何經常和清潔是,這樣的事情可能就足夠了:
for i in `cut -d, -f 2 <csv | sort -u`; do
mkdir $i && grep $i csv > $i/csv
done
(假設你的數據是文件csv
中,你的最新信息是在第二列)
這是幹什麼的? cut
將第二列中的日期過濾掉,並通過sort -u
運行,以創建唯一日期的排序列表。然後我們遍歷這個(for
命令),併爲每個條目我們mkdir
一個相應的目錄,並且grep結果出來到該目錄中的一個csv文件。
這並不理想。例如我們grep通過每個日期的輸入文件。我假設數據是正常的,並且日期字符串(例如2012-08-06)不會出現在數據的其他位置(或者包含會使上述腳本變得空虛和/或/
)的字符。
我不認爲split
命令將幫助你在這裏。將文件分成常規塊(按大小或行數)更爲有用。