【发布时间】:2020-08-17 07:16:49
【问题描述】:
我有一个与 shell 中的 awk 命令相关的问题。我们有一个具有以下值的输入 csv 文件:
Control_Time;Report_Name
2020-08-10;Report A
2020-06-10;Report B
2020-07-01;Report C
我的目标是检查此文件中的所有行,并仅过滤(复制)日期大于上个月第一天的行。因此,我创建了一个名为 previous_month 的变量,如下所示:
previous_month=$(date -d "`date +%Y%m01` -1 month" +%Y-%m-%d)
这个变量工作正常,但我无法在 awk 语句中使用它,我想用它来将数据过滤到输出文件中。
我尝试使用以下语句仅用于打印 previous_month,但它不起作用。
awk -v previous_month="$(date -d "`date +%Y%m01` -1 month" +%Y-%m-%d)" '{print previous_month}'
但是,echo previous_month 工作正常,它给了我 2020-07-01 的值。有什么方法可以使用这个自定义变量吗? 谢谢大家的建议!
【问题讨论】:
-
如果您向我们展示您需要帮助的代码,即您
want to use for filtering data into the output file的代码,那么我们可以帮助您调试和改进该代码。