[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: