我可以翻译中文,这里有一份CSV文件的例子:
name1;1;11880
name2;1;260.483
name3;1;3355.82
name4;1;4179.48
name1;2;10740.4
name2;2;1868.69
name3;2;341.375
name4;2;4783.9
有可能会有更多或更少的行,我需要将它分成多个.dat文件,每个文件包含此文件第二列值相同的行。(然后我将为每个.dat文件制作条形图)对于此案例,应该是两个文件:
data1.dat
name1;1;11880
name2;1;260.483
name3;1;3355.82
name4;1;4179.48
data2.dat
name1;2;10740.4
name2;2;1868.69
name3;2;341.375
name4;2;4783.9
有没有使用bash简单的方法来完成它?
awk -F ';' '{print > "data"int($2)".dat"}' data.dat
。 - Andrzej Pronobisprint int($3) > ....
。 - Andrzej Pronobisawk -F ',' '{print > ("foo" $2 ".csv") }'
- 请注意额外的括号。 - Mihai Târnovan