【问题标题】:Removing Columns From ALL CSV Files in Specific Folder Then Outputting File With Date从特定文件夹中的所有 CSV 文件中删除列,然后输出带有日期的文件
【发布时间】:2014-01-19 02:09:24
【问题描述】:

我正在尝试通过使用 hazel 应用程序将文件移动到特定文件夹,在该文件夹中的任何 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 脚本,以便在文件名末尾添加昨天的日期?

【问题讨论】:

    标签: bash shell csv terminal cut


    【解决方案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
    

    【讨论】:

    • 谢谢!最后说执行 shell 脚本时出错。这是我的设置:i.imgur.com/BHsaqlK.png 前面是 hazel 应用程序,后面是文件/文件夹
    • @JoeBobby 我还看不到任何错误。你得到什么错误信息? (我没用mac,所以对hazel..不熟悉)
    • @JoeBobby 你必须在执行脚本之前创建目录saveCsv...
    猜你喜欢
    • 2020-02-18
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2013-02-19
    • 1970-01-01
    相关资源
    最近更新 更多