Sed, abbreviazione di Stream EDitor, è un comando utilizzato per eseguire trasformazioni e manipolazioni di testo su un file. Alcune di queste trasformazioni includono la ricerca e la sostituzione del testo. Con il comando sed di Linux, puoi manipolare e modificare file di testo senza nemmeno aprirli. In questo tutorial imparerai come manipolare i file di testo usando il comando sed.
Sintassi del comando Linux sed
$ sed {OPTIONS} filename
In questo tutorial useremo linuxgeek.txt come nostro file di riferimento.
# cat linuxgeek.txt Risultato

1. Sostituzione o sostituzione di una stringa
Nella maggior parte dei casi, il comando sed viene utilizzato per sostituire stringhe di testo.
Il comando seguente sostituisce "Linux ' con 'Unix '.
# sed 's/Linux/Unix/' linuxgeek.txt - I
snel comando c'è l'indicatore di sostituzione. - Il
/sono i delimitatori Linuxè il termine di ricercaunixè il termine sostitutivo
Per impostazione predefinita, il comando sed sostituisce solo la prima occorrenza in una riga . Le occorrenze successive non verranno sostituite né sostituite.
Risultato

2. Sostituendo o sostituendo l'ennesima occorrenza in una riga
Se vuoi sostituire la seconda occorrenza di stringa in una riga, usa /2 flag come mostrato.
# sed 's/Linux/Unix/2' linuxgeek.txt Risultato

3. Sostituendo o sostituendo tutte le occorrenze del modello in un file
Per sostituire tutte le occorrenze del modello di ricerca nel file, usa /g bandiera. Il /g è il sostituto globale.
# sed 's/Linux/Unix/g' linuxgeek.txt Risultato

4. Sostituendo o sostituendo tutte le occorrenze di una stringa solo in una riga specifica
Se vuoi sostituire tutte le occorrenze di una stringa in una riga specifica, ad esempio nella riga 2, usa la sintassi seguente
# sed '2 s/Linux/Unix/g' linuxgeek.txt Risultato

5. Sostituzione o sostituzione di una stringa in un intervallo specifico di righe
Se si desidera specificare l'intervallo di righe in cui avverrà la sostituzione della stringa, utilizzare l'esempio mostrato di seguito. L'esempio indica che la sostituzione avvenga dalle righe 1 -3
# sed '1,3 s/Linux/Unix/g' linuxgeek.txt Risultato

Inoltre, puoi sostituire il testo da una riga specifica alla fine del file come mostrato
# sed '2,$ s/Linux/Unix/g' linuxgeek.txt Quello che fa il comando è che sostituisce tutte le occorrenze dalla seconda riga all'ultima riga del file.
Risultato

6. Metti tra parentesi il primo carattere di ogni parola
L'esempio seguente mostra come inserire parentesi su ogni primo carattere di una parola in una riga.
$ echo "Hey Guys, Welcome To Linux Operating System" | sed 's/\(\b[A-Z]\)/\(\1\)/g'
Risultato

7. Elimina le righe da un file
Puoi anche usare il comando linux sed per eliminare le righe in un file.
Esempi
Sintassi:
$ sed 'nd' filename.txt
Per eliminare la 3a riga nel file eseguire
$ sed '3d' linuxgeek.txt Risultato

Per eliminare un intervallo di righe, diciamo dalla riga 3 alla riga 5 , esegui il comando:
$ sed '3,5d' linuxgeek.txt Risultato
