使用awk按列拆分CSV文件

Len*_*ood 3 csv macos bash awk

我有一个CSV文件,需要按日期拆分。我尝试使用下面列出的AWK代码(在其他位置找到)。

awk -F"," 'NR>1 {print $0 >> ($1 ".csv"); close($1 ".csv")}' file.csv

我试过在OS X和Debian的终端中运行它。在两种情况下都没有错误消息(因此代码似乎可以正常运行),但是也没有输出。没有输出文件,并且在命令行没有响应。

我的输入文件有大约6000行数据,如下所示:

date,source,count,cost
2013-01-01,by,36,0
2013-01-01,by,42,1.37
2013-01-02,by,7,0.12
2013-01-03,by,11,4.62
Run Code Online (Sandbox Code Playgroud)

我想要创建一个新的CSV文件,其中包含特定日期的所有行。我在俯视什么?

Len*_*ood 5

我已经解决了 按照该线程的逻辑,我使用file命令检查了行尾,并得知该文件具有旧式的Mac行终止符。我使用Text Wrangler打开了输入的CSV文件,并再次使用Unix样式行结尾将其保存。一旦这样做,awk上面列出的命令就会按预期工作。创建日期前后划分的63个新CSV文件花费了大约5秒钟的时间。