web-dev-qa-db-fra.com

Date actuelle dans awk

Y a-t-il une variable constante dans awk, qui stocke la date d'aujourd'hui? Si non, existe-t-il un moyen qui peut stocker la date d'aujourd'hui pour une utilisation quotidienne?

disons que nous avons ci-dessous le fichier:

boo,foo,2016-08-30
foo,boo,2016-07-31

Et j'ai besoin de comparer la date $3 Dans le fichier, avec la date d'aujourd'hui, quel que soit ce que c'est.

c'est en dessous du script:

awk -F, '{if($3>"2015-08-23"){print $0}}'

2015-08-23 sera modifié à la date actuelle.

4
Eng7

Si vous souhaitez obtenir le temps_t actuel, cela peut être fait en appelant Srand (), puis appelez T = Srand ().

$ awk 'BEGIN{srand(); print srand()}'
1440536144

Cela fonctionne comme POSIX exige que la fonction aléatoire soit initialisée avec l'heure actuelle si elle est appelée sans ARG et pour renvoyer la graine précédente.

4
schily

Vous pouvez le faire en attribuant une variable:

cat /path/to/file | awk -v date="$(date +'%Y-%m-%d')" -F, '{if($3>date){print $0}}'
2
hellcode