我需要更新龐大的CSV文件(20M行)與另一大csv文件(30K行)數據的選擇行的值,慶典更新龐大的CSV文件,從另一家大型csv文件
文件進行更新是1.csv 1120120031,55121 1120127295,55115 6135062894,55121 6135063011,55215 4136723818,55215 6134857289,55215 4430258714,55121
更新文件是2.csv 112012 ,55615 6135062,55414 6135063,55514 995707 ,55721
如1_MOD.csv 1120120031,55621 1120127295,55615 6135062894,55421 6135063011,55515 4136723818,55215 6134857289,55215 4430258714,55121
國防部ifications:
- 如果$ 1 2.csv匹配1.csv $ 1子串(行1 & 2)然後 更新$ 2 1.csv按照在匹配的行2.csv的2 $第三字符;
- 匹配字符串的最大大小(行3 & 4);
- 不匹配的行保持不變(第5到7行)。
到目前爲止,我設法在while循環中測試sed,但腳本需要大約31天才能完成。我相信這是一個更好的辦法,如在陣列和更新1.csv與陣列AWK文件2.csv,這東西是我在awk的知識僅限
感謝
當你有這麼大的文件時,最好使用perl代替,它可能會快得多。 –