bash - 按日期列拆分 csv 并保存到不同的文件夹
问题描述
我有一个这样的 csv 文件。
预算.csv
id,date,budget
1,2019/11/01,100
1,2019/11/02,300
1,2019/11/03,200
2,2019/11/01,600
2,2019/11/02,500
2,2019/11/03,400
如何按日期拆分 CSV 文件并将其保存到不存在的不同位置?我想要的输出结构是这样的。
./2020/11/01/budget.csv
./2020/11/02/budget.csv
./2020/11/03/budget.csv
我尝试了类似的awk -F'[,]' '{print >> "./2020/11/01/'$2'.csv"}' budget.csv
方法,但我需要修复创建新文件夹并以某种方式拆分日期。有什么建议么?我在 Mac OS 上运行。
解决方案
请您尝试以下方法:
while IFS="," read -r id date budget; do
if ((nr++)); then # skip the header line
mkdir -p "$date" # mkdir recursively
echo "$id,$date,$budget" >> "$date/budget.csv"
fi
done < budget.csv