File 按日期列值拆分文件
我有一个csv文件,有89列,它包含多个数据日期。日期列是第59列。日期格式为File 按日期列值拆分文件,file,date,csv,awk,split,File,Date,Csv,Awk,Split,我有一个csv文件,有89列,它包含多个数据日期。日期列是第59列。日期格式为mm/dd/yy。我想要实现的是创建一个带有mmddyyyy.csv的文件,这样每个文件只包含一个数据日期 到目前为止,我的方法是 从文件中获取所有不同的日期 对于每个不同的日期 grep [date value] file > mmddyyyy.csv 上述解决方案的唯一缺点是,如果行中的任何位置存在[date value],它将被拾取,我可能会在两个或多个文件中得到一条记录 我知道对于单个值(字符串/数字
mm/dd/yy
。我想要实现的是创建一个带有mmddyyyy.csv
的文件,这样每个文件只包含一个数据日期
到目前为止,我的方法是
grep [date value] file > mmddyyyy.csv
[date value]
,它将被拾取,我可能会在两个或多个文件中得到一条记录
我知道对于单个值(字符串/数字),awk可以像
awk -F"\t" '{print >> ($14".csv");}' $1
听起来你需要的只是:
awk -F, '{split($59,t,"/"); print > (t[1] t[2] "20" t[3] ".csv")}' file
但如果没有样本输入和预期输出,这只是猜测。如果您没有使用GNU awk,您可能需要在适当的时候加入一个
close()
,以避免同时打开太多文件。听起来您需要的只是:
awk -F, '{split($59,t,"/"); print > (t[1] t[2] "20" t[3] ".csv")}' file
但如果没有样本输入和预期输出,这只是猜测。如果您没有使用GNU awk,您可能需要在适当的时候加入一个close()
,以避免同时打开太多文件