Re: [OT] aiutino espressioni regolari + sed
hlocap@tin.it wrote:
Salve a tutti,
dovrei sostituire il formato di una stringa presente in
un file di testo.
La stringa è una data del tipo '2009-02-28 00:00:00'
e la dovrei sostituire con '20090228'.
Le stringhe sono diverse nei
valori, ed in più il carattere '-' è presente nelle righe, quindi un
trova e sostituisci del carattere '-' non va bene, a meno che non
riesco a lavorare sulla stinga.
Per selezionarla ho provato così
sed
-e "s/[0-9]\{4\}\-[0-9]\{2\}\-[0-9]\{2\}\s00:00:00/prova/" miofile.txt
nuovo.txt
Come faccio per mettere al posto di "prova" il modello
giusto?
Grazie
e funziona
puoi usare le back-reference
$ echo '2009-02-28 00:00:00' | sed
's/\([0-9]\{4\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\) 00:00:00/\1\2\3/'
20090228
in pratica metti tra parentesi tonda ogni "gruppo" che vuoi isolare, e
poi lo richiami con \1 \2 ... nell'ordine
ti consiglio un bel tutorial sull'argomento
http://www.grymoire.com/Unix/Sed.html
Reply to: