我只是使用了您粘贴在那里的示例数据。
awk oneliner 可以为您做到:
awk -F, 'NR==1{title=$0;next} { print >> ($2".csv");colse}' yourCSV
看下面的测试:
kent$ l
total 4.0K
-rw-r--r-- 1 kent kent 136 2011-10-05 11:04 t
kent$ cat t
Index, Name, Year, AgeGroup1, AgeGroup2, AgeGroup3
1, Sweden, 1950, 20, 25, 27
2, Norway, 1950, 22, 27, 28
2, Sweden, 1951, 24, 24, 22
kent$ awk -F, 'NR==1{title=$0;next} { print >> $2".csv"}' t
kent$ head *.csv
==> Norway.csv <==
2, Norway, 1950, 22, 27, 28
==> Sweden.csv <==
1, Sweden, 1950, 20, 25, 27
2, Sweden, 1951, 24, 24, 22
更新
awk -F, 'NR>1{ fname=$2".csv"; print >>(fname); close(fname);}' yourCsv