2017-10-14 81 views
0

こんにちは私は、ファイルから特定の情報を検索して印刷するためのスクリプトを作ろうとしています。私の場合はこれです:私はid|lastname|firstname|birthday|の形式のファイルを持っています。私はスクリプトを呼び出して、日付引数とファイルを与えて、私が与えた日付の後に生まれたすべての "人"を見せるようにしたい。 私はあなたに私のコードをお見せしましょう:awkシェルで日付を比較する

#!/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年2月18日の日付は間違っています。 おそらく、日付ではなく、何かを比較しているでしょう。何かアドバイス ?単一awkの処理により

+0

ええ私の悪いが、それは間違っている、それは別のエントリからあまりにも多くの異なった結果ですので、私は –

+0

はいくつかの入力ラインは、すべての意志投稿の編集、少し混乱しましたフィールド – RomanPerekhrest

答えて

0

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

これは機能しますが、日付は同じですが、これは同じです。私はそれを試してみることができますので、ありがとうございます! 1つのコマンドで大小の比較が可能ですか?) –

+0

@DimitrisDelis、はい、可能です – RomanPerekhrest