比较awk shell中的日期

时间:2017-10-14 17:31:25

标签: shell awk grep

您好我正在尝试创建一个脚本来搜索文件中的特定信息并进行打印。我的情况是这样的:我有一个格式为id|lastname|firstname|birthday|的文件。我想调用脚本并给出一个日期参数和文件,以便它向我展示在我给出的日期之后出生的所有“人”。  让我告诉你我的代码:

#!/bin/bash
case $1 in 
--born-since )
d=($2 +%F); # this one puts the date I've given into the variable d
grep -vE '^#' $4 | awk -F "|" ' $4 >= $d '
;;
esac

我以下列形式称呼此脚本:

./script --born-since <date> -f <file>

重点是它没有做我想做的事。我打印错误的结果。 例如,在具有4个日期的文件中(1989-12-03,1984-02-18,1988-10-14,1980-02-02),给定1985-05-13的日期,它仅打印具有日期的人1984-02-18这是不正确的。 这可能是比较其他东西而不是日期。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用单个 awk 进程:

awk -v d="1985-09-09" -F'|' '$4 >= d' file