[email protected] 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


--
Per REVOCARE l'iscrizione alla lista, inviare un email a
[email protected] con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a [email protected]

To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Rispondere a