按特定列拆分 700 万行 CSV

Bra*_*MXB 2 windows-7 csv

我将如何通过特定的数字列将一个非常大(700 万行)的 CSV 文件拆分为几个不同的工作表/文件。它应该分成大约 10 个不同的文件。

Ken*_*Ken 5

这可能就像这个单行一样简单awk

awk -F ',' '{ print > ("split-" $1 ".csv") }' 7mil.csv
Run Code Online (Sandbox Code Playgroud)
  • 这里的输入文件是 7mil.csv
  • 决定列号用美元符号表示。如果它是第三列,它会$3代替$1
  • 列值用于生成结果文件名。因此,例如,具有值的每一行都42将位于名为split-42.csv
  • 字段分隔符是逗号
    • 这是有效的,因为/如果该值是数字,并且没有任何需要剥离的引号
    • 但也要求文件中的任何字符串中都没有逗号(至少在数字列之前没有)

所以这只是读取每一行并将其打印到与该值对应的文件中。注意它添加到文件中,所以如果你运行它两次,所有的数据都会被复制;因此,请确保没有要启动的具有该命名模式的文件:del split-*.cvs

尝试此操作的难点在于awk在 Windows 上安装。这里有适用于 Windowsgawk以及运行它一些技巧