2017-10-14 28 views
0

你好,我正在尝试使脚本从文件中搜索特定的信息并将其打印出来。我的情况是这样的:我有一个格式为:id|lastname|firstname|birthday|的文件。我想调用剧本并给出一个日期参数和文件,让它显示我给出日期后出生的所有“人物”。 让我告诉你我的代码:在awk shell中比较日期

#!/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这是不正确的。 这可能是比较别的东西而不是日期。有什么建议?

+0

是啊我的坏,这是错的,这是从不同的项目实在太多了不同的结果,所以我有点糊涂了,编辑 –

+0

后几个输入线将全部字段 – RomanPerekhrest

回答

0

采用单AWK过程:

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

这可以工作,但对于日期相同的情况不适用。谢谢你,因为我可以试试看!是否可以在单个命令中比较大小(当然是2个不同的日期)?) –

+0

@DimitrisDelis,是的,这是可能的 – RomanPerekhrest