Spesso voglio automatizzare questo tipo di attività in uno script di shell:
se la linea:
SOMEKEY=SOMEVALUE
esiste in un file, quindi cambiarlo in
SOMEKEY=SOMEOTHERVALUE
in caso contrario, aggiungere la riga SOMEKEY=SOMEOTHERVALUE
nel file.
Come ho potuto fare questo? Penso che potrei farlo usando una combinazione di grep
e sed
, ma sono sicuro che sia un compito abbastanza comune che qualcuno abbia già elaborato una soluzione elegante.
A proposito, in sostituzione normalmente farei qualcosa del genere
sed -i 's/old/new/g' fname
Ma significa che devo stare molto attento quando compongo le mie espressioni regolari, in modo da non sbagliare. Esiste un modo semplice per "visualizzare in anteprima" quali modifiche si verificherebbero dalla mia chiamata sed
senza realmente calpestare il file?
-i
e il codice: yoursedcommand|grep fname -
che confronterà l'esito del tuo comando con il file originalefname