按列

时间:2016-09-19 17:05:14

标签: linux file csv awk split

我的CSV大小为4.5GB。我想根据列将此CSV分成不同的文件。例如:

File1.csv: Cols(1,35,36,37)    
File2.csv: Cols(1,127,129,135) 
File3.csv: Cols(1,285,287,299,311) 
File4.csv: Cols(1,2,4,5,6,12,13,14)

**注意第1列是一个id列,并且始终需要。

基本上我想将包含328列的CSV分解为用于Mysql导入的许多较小的CSV。

虽然我可以使用多个awk命令轻松完成此操作,但我不想使用每个命令重新处理整个4.5GB-6GB文件。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您可以print awk '{print $1, $35, $36, $37 > "file1.csv"} \ {print $1, $127, $129, $135 > "file2.csv"} \ {print $1, $285, $287, $299, $311 > "file3.csv"}\ {print $1, $2, $4, $5, $6, $12, $13, $14 > "file4.csv"}' inFile.csv {aw}中的不同文件:

string strBase64 = Convert.ToBase64String(bytes);