如何将csv文件拆分为具有标题行和1行数据的单独文件

时间:2014-06-16 12:13:41

标签: csv awk

如何将csv文件拆分为带有标题行和1行数据的文件。我打算使用AWK,但任何选择当然都会感激不尽。我想将csv文件拆分为单行文件(带标题行)。例如,我想采取这样的方式: -

FirstName, Age, Sex
John,45,Male
Paul,24,Male
Mark,87,Male
Sue,29,Female

并生成四个看起来像这样的文件: -

文件1:

FirstName, Age, Sex
John,45,Male

文件2:

FirstName, Age, Sex
Paul,24,Male

等...

1 个答案:

答案 0 :(得分:2)

这样可以解决问题:

$ awk 'NR==1{h=$0;next}{f="file"++i;print h,$0 > f;close(f)}' OFS='\n' file

示例:

$ ls
file

$ cat file
FirstName, Age, Sex
John,45,Male
Paul,24,Male
Mark,87,Male
Sue,29,Female

$ awk 'NR==1{h=$0;next}{f="file"++i;print h,$0 > f;close(f)}' OFS='\n' file

$ ls
file  file1 file2 file3 file4

$ cat file1
FirstName, Age, Sex
John,45,Male

$ cat file2
FirstName, Age, Sex
Paul,24,Male

$ # ect