2017-10-14 51 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