从特定文件夹中的所有CSV文件中删除列然后使用日期输出文件

时间:2014-01-01 13:42:29

标签: bash shell csv terminal cut

我正在尝试通过使用hazel app将文件移动到特定文件夹,在该文件夹中的任何csv上执行shell脚本,然后将其移动到另一个文件夹来自动执行某些过程。现在我正在处理的部分是shell脚本。我一直在测试csvs终端上的cut命令,但我不确定它是否与shell脚本相同,因为它似乎没有工作但我拥有的是:

cut -d',' -f2,12 test.csv > campaigns-12-31-13.csv

它会查找test.csv,但我希望它可以与任何csv一起使用,并且它还会以日期12-31-13导出它,但我只是想让它以昨天的日期导出是

如何将此转换为将在文件夹中的任何csv上执行的shell脚本,因此它会在文件名末尾添加昨天的日期?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下脚本:

#! /bin/bash

saveDir="saveCsv"
dd=$(date +%Y-%m-%d -d "yesterday")
for file in *.csv ; do
    bname=$(basename "$file" .csv)
    saveName="${saveDir}/${bname}-${dd}.csv"
    cut -d',' -f2,12 "$file" > "$saveName"
done