grep les modèles de date spécifiques

0

J'ai une exigence, où j'ai besoin de grep des journaux qui couvre de la plage de dates allant du 2011/03/25 au 2011/04/04 (AAMMJJ).

Je l'ai fait avec la commande egrep, semble bien fonctionner pour moi.

cat / var / log / messages | egrep "2011/03/2 [6-9] | 2011/03/3 [0-1] | 2011/04/0 [1-4]"

Je cherchais une commande qui rendrait ma vie simple.

Ci-dessous l'extrait du fichier journal ...

 2011/04/01-12:15:00
 2011/04/01-12:15:00
 2011/04/01-12:15:00
 2011/04/01-12:15:01
 2011/04/01-12:15:01
 2011/04/01-12:15:01
 2011/04/01-12:15:01
 2011/04/01-12:15:01
Maneeshshetty
la source
Pourquoi pensez-vous que ce sera très différent dans awk? Vous defintely besoin d' un reg-expr où les « / » caractères sont échappés que vous avez, 2011\/04.... Mais je ne pense pas que vous ayez besoin d'échapper à '/' dans un egrep (au moins sur la version que j'utilise). Bonne chance!
shellter
1
utilisation inutile du chat:egrep "pattern..." /var/log/messages
glenn jackman
@ GlennJackman m'a prouvé à courte vue. Certainement et amélioration de awk!
shellter

Réponses:

1
awk -F - '"2011/03/25" < $1 && $1 <= "2011/04/04"' filename

ou, si les dates sont plus dynamiques

d1="2011/03/25" # or whatever commands to set this date
d2="2011/04/04" # or whatever commands to set this date
awk -v start=$d1 -v end=$d2 -F - 'start < $1 && $1 <= end' filename
Glenn Jackman
la source
Oui, c'est ce que je cherchais. Merci Glenn!
maneeshshetty