Modifica di un file tramite bash
Se c’è la necessità di modificare un file testuale tramite script bash è possibile utilizzare il comando sed
Un esempio di uno script
[bash]
#!/bin/bash
sed "s/pippo/pluto/g" /home/utente/miofile > /home/utente/miofile.new
mv /home/utente/miofile /home/utente/miofile.bak
mv /home/utente/miofile.new /home/utente/miofile
[/bash]
La sintassi da usare è la seguente
- il primo parametro include le istruzioni su cosa modificare
- in questo esempio ho usato la sostituzione ( s/ ) che di solito è quello usato più spesso
- le due barre ( / ) servono a delimitare le opzioni di ricerca e sostituzione
- il primo indica cosa cercare ( pippo )
- il secondo con cosa sostituire ( pluto )
- per ultimo il carattere di chiusura ( /g )
- in caso nel testo da cercare ci fosse un doppio apice ( ” ) basta usare davanti la barra opposta ( \” ), esempio sed “s/stato\”ok\”/stato\”ko\”/g” ….
- il secondo parametro indica il file da usare come origine della ricerca
- il terzo parametro dopo il re-indirizzamento output ( > ) indica dove salvare il risultato delle operazioni
- nello script ho anche aggiunto dei comandi che si occupano di rinominare il file originale come copia di backup ( .bak ) e poi rinominano il file di output nel nome del file originale
Ovviamente il comando ha molti altre opzioni e tipi di utilizzo, rimando ovviamente al buon man per la documentazione.
Di seguito volendo anche una guida introduttiva.