Ciao a Tutti.
A volte mi capita di dover ripulire un log da infomazioni particolari (come indirizzi IP, hostnames, etc.) per poterli inviare via email. Di solito lo faccio “a mano”, tramite “vi” che in modalità comando può fare sostituzioni con sintassi simile a quella di “sed”.
Mi piacerebbe però creare uno script che faccia automaticamente il parsing.
La “bozza di idea” sarebbe:
VARIABILE1=“hostame1 hostname2 hostname3 hostname4 hostname5”
adesso con sed bisognerebbe cercare tutti questi hostnames e sostituirli con “PIPPO” e ridirigere l’output verso nuovofile.log, ma come? Non credo si possa fare con un ciclo di for, perché ad ogni iterazione verrebbe sovrascritto nuovofile.log.
Il parsing non sarebbe finito qui:
VARIABILE2=“ip_addres1 ip_addres2 ip_addres3 ip_addres4 ip_addres5”
sostituire con “XXX”.
Il risultato finale dovrebbe essere un nuovo file ripulito dalle stringhe da oscurare.
Il meglio che riuscirei a fare io è:
sed s/hostname1/PIPPO/g file.log > file-2.log
sed s/hostname2/PIPPO/g file-2.log > file-3.log
sed s/hostname3/PIPPO/g file-3.log > file-4.log
sed s/hostname4/PIPPO/g file-4.log > file-5.log
sed s/hostname5/PIPPO/g file-5.log > file-6.log
rm -f file-2.log file-3.log file-4.log file-5.log
mv file-6.log nuovofile.log
Sono riuscito a farvi ridere?
Sarebbe bello se sed potesse prendersi le stringhe dalla VARIABILE1.