我想根据最后一个“字段”拆分一个 csv 文件。例如 csv 文件包含:
a,1
b,2
c,3
d,1
数字表示类别。
该文件应根据编号(分别为类别)拆分为单独的文件,以便存在三个文件。
第一个文件:
a,1
d,1
第二个文件:
b,2
第三个文件:
c,3
贪婪的方法是每行读取 csv,将字符串拆分为“,”并分隔最后一个元素(此处为数字)。之后我可以检查当前行的编号并将其放入 FileWriter 中。但是:我不知道会有多少类别,因为我想保持系统可扩展。因此所需的 FileWriter 的数量是未知的。
作为替代方案,我可以阅读每个类别的完整 csv 文件。在第一次迭代中,只有类别“1”的行将被处理并写入“1.csv”,在第二步中,只有类别“2”的行进入“2.csv”,依此类推。但是:这意味着文件必须被读取的次数与存在的类别一样多,这可能很频繁。
您是否知道为此目的是否有一个优雅的解决方案?
我也很欣赏基于 linux 的解决方案!也许不需要创建 Java 程序?我想 awk 可能是首选工具?
谢谢你的帮助!