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

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

Oui, c'est ce que je cherchais. Merci Glenn!
maneeshshetty
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.