获得了从 csv 的特定列中过滤日期范围的命令,但在其中一种情况下失败了

获得了从 csv 的特定列中过滤日期范围的命令,但在其中一种情况下失败了

获取了从 csv 的特定列中过滤日期范围的命令,但如果开始日期和结束日期相同并且输入文件只有该日期的一个条目,则该命令不起作用

awk -v start="$start" -v end="$end" -F, '$2>=start && $2<=end' Inputfile 

可以很好地过滤第二列中的日期,但如果 start="10/25/2017"并且end="10/25/2017"如果输入文件是(即日期“10/25/2017”只有一个条目),则不会获得任何输出

1,10/25/2017,Scheduled
3,11/1/2017,Scheduled
1,11/2/2017,Scheduled

答案1

我准确地检查了你的案例和数据文件。不过它对我有用

  • AWK 不知道这样的日期,因此 9/30/2017 高于 10/1/2017。因此结果可能与预期相差甚远,因为它们只是字符串!
  • “军事型计时”,例如 2017/09/30 和 2017/10/01 就可以。
  • 分开月/日/年并相应地比较它们 - 但在这种情况下我建议 perl 而不是 awk

也许这是您遇到的变量范围问题。

例如,尝试使用export start='10/25/2017' ; export end='10/25/2017'而不是在子 shell 中运行 awk 。start="10/25/2017"

相关内容