Je cette pour:Passage sortie d'une commande comme argument à l'autre
for i in `ls -1 access.log*`; do tail $i |awk {'print $4'} |cut -d: -f 1 |grep - $i > $i.output; done
ls donnera access.log, access.log.1, access.log.2 etc.
queue me donnera la dernière ligne de chaque fichier, qui ressemble à: 192.168.1.23 - - [08/Oct/2010:14:05:04 +0300]
etc etc etc
awk + coupe extraira la date (08/Oct/2010 - mais différent dans chaque access.log), ce qui me permettra de grep et redirige la sortie vers un fichier distinct.
Mais je n'arrive pas à passer la sortie de awk + cut à grep.
La raison de tout cela est que ces journaux d'accès incluent des lignes avec plus d'une date (06/Oct, 07/Oct, 08/Oct) et j'ai juste besoin des lignes avec la date la plus récente.
Comment puis-je y parvenir?
Merci.
Pouvez-vous poster une entrée d'exemple et les résultats escomptés? –
Un problème est que vous continuez d'écraser la même sortie pour chaque access.log. Notez que vous pouvez également utiliser plusieurs fichiers pour la queue. – Tomas
lol .. tu as raison, je ne sais pas comment j'ai négligé ce fait. Laissez-moi y réfléchir pour que je puisse trouver une solution. – w00t