Terminal tricks: sed per sostituire una parola in un file

Terminal tricks: sed per sostituire una parola in un file

Con questo articolo inizio piccola rubrica dedicata a chi utilizza abitualmente sistemi linux o bsd ed è intimorito dall'utilizzo terminale virtuale, strumento secondo me utilissimo e in particolar modo istruttivo. Le interfacce grafiche a finestre che utilizziamo quotidianamente, sono comode e confortevoli, ma nascondono ai nostri occhi quello che realmente succede sul nostro pc; inoltre tante operazioni che solitamente svolgiamo tramite mouse, possono essere svolte e automatizzate attraverso l'utilizzo del nostro terminale. Non è prerogativa del sistemista l'utilizzo di questo strumento e un esempio lampante sono proprio io che mi occupo di web e svolgo metà del mio lavoro collegato in remoto tramite un terminale. Quello che vorrei mostrarvi oggi è l'utilizzo del comando sed per sostituire parole all'interno di un file. Innanzi tutto due parole sul comando sed; oggi presente su quasi tutti i sistemi operativi basati su linux/bsd questo comando non è altro che uno "stream editor" ovvero un programma che permette di effettuare trasformazioni testuali sull'input che gli passiamo (in questo caso come vedrete un file). Supponiamo di avere un file di testo con al suo interno una stringa che chiameremo stringa1 e di volerla sostituire con un'altra stringa di testo che chiameremo stringa2; tramite sed basta questa semplicissima riga di codice:

 

CODE:
  1. sed -e 's/stringa1/stringa2/' file.txt> file.txt

 

In questo modo il comando sed cercherà all'interno di file.txt la stringa1 e la sostituirà con stringa2 andando poi a sovrascrivere il file.txt con l'output che ne deriva; ovviamente vista la semplicità dell'esempio, non viene effettuato alcun controllo, rischiando quindi di andare a sovrascrivere in maniera erronea il file. Nel prossimo articolo vedremo come rendere un po' più sicuro e potente questo comando andando a creare un vero e proprio script.

  • E-mail this story to a friend!
  • Print this article!
  • Digg
  • del.icio.us
  • Facebook
  • Sphinn
  • Mixx
  • Google
  • laaik.it
  • Live
  • StumbleUpon
  • Technorati
  • Wikio IT
  • YahooMyWeb
  • Internetmedia
  • MySpace
  • Segnalo
  • Slashdot

Lascia un commento