PDA

Visualizza la versione completa : [BASH] Sostituzione parole tramite comando "tr"


rocco.g
05-10-2006, 12:58
Ciao!

la domanda può sembrare stupida... cmq provo lo stesso a farla ;)


ho un testo in cui voglio sostituire delle parole con delle altre usando tr...

sono andato sul man ed a quanto ho capito tr traduce e sostituisce singole lettere o range di lettere, ma non stringhe intere...

di fatti se provo a fare:

#> cat prova.txt | tr stringa1 stringa2

considera stringa1 come un range di caratteri...


leggendo sul man e cercando su google non ho trovato niente...

esiste un modo per sostituire parole intere con tr?


Grazie! ;)

andbin
05-10-2006, 14:00
Originariamente inviato da rocco.g
esiste un modo per sostituire parole intere con tr?No, "tr" è limitato alle operazioni solo su caratteri.
Hai bisogno di qualcosa di più potente .... "sed"!!!

cat prova.txt | sed 's/stringa1/stringa2/g' > output.txt

sed, tra le (tante) altre cose, è in grado di effettuare sostituzioni usando delle espressioni regolari. Nel comando sopra, sostituisce tutte le occorrenze di stringa1 in stringa2, anche sulla stessa linea (grazie al flag 'g').

rocco.g
05-10-2006, 15:13
ok, grazie!!!


userò sed allora!

Loading