2 votes

Shell script pour rechercher et exporter vers un fichier csv/feuille Excel

J'ai besoin de rechercher "WAM" dans le formulaire ci-dessous. /var/log/messages et exporter la valeur complète de l'horodateur vers une feuille Excel ou un document texte.

2013-07-09T02:22:18.535639Z user.info WebAppMgr WAM
2013-07-09T02:22:21.817372Z user.info sam SAM  ^Icom.palm.app.calculator
2013-07-09T02:22:21.818442Z user.info sam SAM  ^Icom.palm.app.settings
2013-07-09T02:22:22.746751Z user.info WebAppMgr WAM
2013-07-09T02:22:23.846636Z user.info sam SAM  ^Icom.palm.app.notes
2013-07-09T02:22:24.851727Z user.info sam SAM  ^Icom.palm.app.firstuse

Pour le terminal de sortie, cela fonctionnera

awk '/\ WAM/ {print $1"\t"}' /home/santosh/messages

J'ai besoin d'une sortie dans un fichier texte / une feuille Excel comme suit

WAM 
2013-07-09T02:22:18.535639Z
2013-07-09T02:22:22.746751Z

3voto

jaypal Points 34440

Essayez ça :

awk 'BEGIN{print "WAM"}/\<WAM\>/{print $1}' /home/santosh/messages > text.file

2voto

Kent Points 71470

Essayez cette phrase :

awk 'BEGIN{v="WAM";print v}$NF==v&&$0=$1' yourfile

avec votre exemple :

kent$  echo "2013-07-09T02:22:18.535639Z user.info WebAppMgr WAM
2013-07-09T02:22:21.817372Z user.info sam SAM  ^Icom.palm.app.calculator
2013-07-09T02:22:21.818442Z user.info sam SAM  ^Icom.palm.app.settings
2013-07-09T02:22:22.746751Z user.info WebAppMgr WAM
2013-07-09T02:22:23.846636Z user.info sam SAM  ^Icom.palm.app.notes
2013-07-09T02:22:24.851727Z user.info sam SAM  ^Icom.palm.app.firstuse"|awk 'BEGIN{v="WAM";print v}$NF==v&&$0=$1'
WAM
2013-07-09T02:22:18.535639Z
2013-07-09T02:22:22.746751Z

1voto

Jesse Smith Points 953

Essayez

awk '/\ WAM/ {print $1"\t"}' /home/santosh/messages > ~/testOutput

Vous pouvez toujours importer comme un fichier délimité par des tabulations dans Excel à partir de là.

1voto

inspectorG4dget Points 25092

BASH :

grep WAM /var/log/messages | cut -d' ' -f1 > /home/santosh/messages

Python :

with open('/var/log/messages') as infile, open('/home/santosh/messages', 'w') as outfile:
    outfile.write("WAM\n")
    for line in (line for line in infile if "WAM" in line):
        outfile.write(line.partition(' ')[0]
        outfile.write('\n')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X