Come utilizzare il comando SED per sostituire una stringa in un file

Come utilizzare il comando SED per sostituire una stringa in un file

La forma completa del comando "sed" è un editor di streaming. Questo comando è un comando molto potente del sistema operativo Linux e viene utilizzato per vari scopi. Uno degli usi comuni di questo comando è trovare e sostituire uno o più valori di stringa di un file. Il contenuto particolare di un file può essere sostituito da questo comando senza aprire il file. Il comando "sed" supporta l'espressione regolare. Il valore della stringa specifico può essere cercato all'interno di un file in base all'espressione regolare che è definita con questo comando. I diversi modi di cercare e sostituire la stringa particolare in un file usando il comando "sed" sono mostrati in questo tutorial.

Sintassi:

La sintassi del comando "sed" per cercare e sostituire la stringa da un file è data come segue:

Sed -I "S/Search/Sostituisci"


Qui, l'opzione "I" viene utilizzata per sostituire il contenuto del file originale se viene trovata la parola di ricerca. IL "S"Il comando indica il sostituto che cerca la stringa particolare e sostituisce la stringa con un'altra stringa se la parola di ricerca esiste nel file. Il nome file contiene il nome di qualsiasi nome file esistente in cui vengono eseguite la ricerca e la sostituzione.

Diversi esempi di comandi "sed"

I diversi modi di cercare e sostituire le stringhe in un file sono mostrati in questa parte del tutorial. Crea un file di testo chiamato studenti.txt dal seguente contenuto in cui l'attività di ricerca e sostituzione viene eseguita utilizzando il comando "SED":

studenti.TXT


MD. Hossain: CSE: batch-50: semestre-10

Nibir Rahman: CSE: batch-51: semestre-9

Mehnaz Kazi: CSE: batch-52: semestre-8

Esempio 1: sostituire tutte le occorrenze della stringa senza modificare il file

Il metodo per sostituire una stringa particolare in un file in base alla corrispondenza esatta della stringa di ricerca è mostrato in questo esempio.

Esegui il seguente comando per controllare il contenuto degli studenti.file txt:

$ Cat Students.TXT


Esegui il seguente comando per cercare la parola "CSE" negli studenti.file txt e sostituire tutte le occorrenze di questa stringa usando "BBA":

$ sed 's/cse/bba/'.TXT


Produzione:

Viene visualizzato il seguente output dopo aver eseguito i comandi precedenti:


Esempio 2: sostituire permanentemente tutte le occorrenze della stringa nel file

Il metodo per sostituire permanentemente una stringa particolare in un file in base alla stringa di ricerca è mostrato in questo esempio.

Esegui il seguente comando per controllare il contenuto degli studenti.file txt:

$ Cat Students.TXT


Esegui il seguente comando per cercare la parola "batch" negli studenti.file txt e sostituire tutte le occorrenze di questa stringa nel file in modo permanente usando "batch":

$ sed -i 's/batch/batch/i'.TXT


Esegui il seguente comando per verificare il contenuto aggiornato degli studenti.file txt:

$ Cat Students.TXT


Produzione:

Viene visualizzato il seguente output dopo aver eseguito i comandi precedenti:


Esempio 3: sostituire la presenza particolare della stringa nel file

Il metodo per sostituire una stringa particolare di un evento particolare in un file in base alla corrispondenza esatta della stringa di ricerca è mostrato in questo esempio:

Esegui il seguente comando per controllare il contenuto degli studenti.file txt:

$ Cat Students.TXT


Esegui il seguente comando per cercare la parola "0" negli studenti.file txt e sostituire tutte le occorrenze di questa stringa nel file usando "1":

$ sed 's/0/1/' studenti.TXT


Esegui il seguente comando per cercare la parola "0" negli studenti.file txt e sostituire la seconda occorrenza di questa stringa nel file usando "1":

$ sed 's/0/1/2' studenti.TXT


Produzione:

Viene visualizzato il seguente output dopo aver eseguito i comandi precedenti:


Esempio 4: stampare le righe sostituite del file due volte

Il metodo per sostituire una stringa particolare in un file in base alla corrispondenza esatta della stringa di ricerca e stampare ogni riga sostituita due volte è mostrato in questo esempio.

Esegui il seguente comando per controllare il contenuto degli studenti.file txt:

$ Cat Students.TXT


Esegui il seguente comando per cercare la parola "batch" negli studenti.file txt e sostituire tutte le occorrenze di questa stringa nel file usando "batch" e stampare le righe sostituite due volte:

$ sed 's/batch/batch/p'.TXT


Produzione:

Viene visualizzato il seguente output dopo aver eseguito i comandi precedenti:


Esempio 5: sostituire la stringa della riga particolare del file

Il metodo per sostituire una stringa particolare di una riga particolare in un file in base alla stringa di ricerca è mostrato in questo esempio.

Esegui il seguente comando per controllare il contenuto degli studenti.file txt:

$ Cat Students.TXT


Esegui il seguente comando per cercare la parola "batch" negli studenti.file txt e sostituire il verificarsi di questa stringa nella seconda riga del file usando "batch":

$ sed '2 s/batch/batch/i'.TXT


Produzione:

Viene visualizzato il seguente output dopo aver eseguito i comandi precedenti:


Esempio 6: sostituire la stringa dell'intervallo particolare delle righe del file

Il metodo per sostituire una particolare stringa nell'intervallo particolare delle righe di un file in base alla stringa di ricerca è mostrato in questo esempio.

Esegui il seguente comando per controllare il contenuto degli studenti.file txt:

$ Cat Students.TXT


Esegui il seguente comando per cercare la parola "batch" negli studenti.file txt e sostituire il verificarsi di questa stringa dalla prima alla seconda riga del file usando "batch":

$ sed '1,2 s/batch/batch/'.TXT


Produzione:

Viene visualizzato il seguente output dopo aver eseguito i comandi precedenti:

Conclusione

Il comando "SED" è un comando molto utile di Linux per eseguire l'attività di ricerca e sostituire. Semplifica il compito di sostituire il contenuto di un file utilizzando diversi schemi di ricerca. Gli usi del comando "sed" per sostituire il contenuto di un file in base alla corrispondenza esatta, al numero di occorrenze di ricerca o al numero della riga sono mostrati qui da più esempi. Speriamo che gli utenti Linux siano in grado di utilizzare il comando "SED" per sostituire il contenuto del file dopo aver letto correttamente questo tutorial.