Come utilizzare sed per modificare il file in atto

Come utilizzare sed per modificare il file in atto

Linux supporta vari tipi di utility di comando per automatizzare le attività che rendono Linux nella linea principale del sistema operativo; A causa della sua importanza e utilizzo, ha centinaia di distribuzioni che si basano su Linux e supportano numerosi comandi per eseguire azioni automaticamente.

C'è un enorme pool di comandi disponibile per Ubuntu e l'utilità dei comandi SED è uno di questi; Il comando SED può essere utilizzato per eseguire operazioni fondamentali su file di testo come la modifica, eliminazione del testo all'interno di un file.

Accanto a queste azioni primarie, SED fornisce un lungo elenco di opzioni supportate che possono essere utilizzate per manipolare l'output in base ai requisiti dell'utente, ispirati a questo; Abbiamo compilato una guida che dimostrerà per mantenere le modifiche nel file originale usando il comando SED:

Come modificare il file in atto utilizzando il comando sed

Questa opzione di comando SED viene utilizzata per modificare il file e salvare le modifiche a quella originale e può essere utilizzata con tutte le operazioni del comando SED:

La sintassi per questa opzione è descritta di seguito:

Sintassi

comando sed -i [nome file]

O

comando sed-inplace [nome file]

Nella sintassi sopra indicata, l'opzione "-I" è costante (quando si sta apportando le modifiche al file) e la parola chiave "comando" contiene le operazioni (sostituzione, eliminazione, aggiunta) da eseguire utilizzando il comando SED; e infine, il "nome file" dirige al nome del file in cui vengono intraprese tutte le azioni associate al comando SED.

Abbiamo preso un file di testo che contiene poche righe di testo in esso:

Estraiamo il contenuto di "Examp.TXT"File usando il comando menzionato di seguito:

$ gatto examp.TXT

Cominciamo con l'uso di base che se usiamo SED senza "-io"L'opzione quindi stamperebbe il risultato sul terminale e il file originale sarà invariato (come selezionato usando il comando" cat ") come mostrato di seguito:

Differenza tra il file di modifica in atto e il file Modifica del comando SED

Nel comando sotto menzionato; "S"È usato per la sostituzione e sostituirà la parola"Debian" con "Ubuntu". Inoltre, la lettera "G"Alla fine di questo comando è per un'azione globale, significa che la sostituzione verrebbe eseguita nell'intero file:

$ sed 's/debian/ubuntu/g' examp.TXT

E ora usa lo stesso comando con "-io"Opzione come indicato di seguito; Si notò che con l'aiuto di "-io"Il contenuto all'interno del file originale ("Examp.TXT") Inoltre è cambiato ora, come visualizzato di seguito:

Nota: Puoi usare "-a posto" invece di "-io"; Entrambe le opzioni hanno la stessa funzionalità:

$ sed -i 's/debian/ubuntu/g' examp.TXT

Come modificare una riga di file specifica in atto utilizzando il comando SED

E se si desidera modificare il contenuto di qualsiasi numero di riga specifico, è possibile aggiungere un valore numerico con la lettera "S"; Ad esempio, il comando indicato di seguito sostituirà "Ubuntu" con "Debian" solo sul numero di riga "2" e una volta che hai specificato il numero di riga, lo scopo della lettera "G" viene annullato in modo da poterlo rimuovere:

$ sed -i '2s/ubuntu/debian/' examp.TXT

Inoltre, puoi posizionare "$"Segno con"S"Parola chiave per eseguire solo le modifiche all'ultima riga del file; Come il comando scritto di seguito metterà la parola "Ubuntu" al posto di "Linux-Mint"Sull'ultima riga di"Examp.TXT":

$ sed -i '$ s/ubuntu/linux -mint/' examp.TXT

Come eliminare una riga in un file usando il comando sul posto di SED

L'opzione sul posto ha un ampio uso nel comando SED come discusso sopra; Oltre a sostituire le parole in una riga, si può eliminare l'intera linea e salvare l'output nel file principale usando "-io"Opzione: il comando menzionato di seguito eliminerà il numero di riga"2”Del file“ Examp.TXT":

$ sed -i '2d' examp.TXT

E se si desidera eliminare le righe tranne il numero di riga "2"Quindi devi scrivere il comando come menzionato di seguito:

$ sed -i '2!D 'Examp.TXT

Conclusione

Ubuntu supporta una varietà di comandi che possono essere utilizzati per eseguire le operazioni primarie su file di testo come la testa o i comandi di coda possono essere utilizzati per stampare le righe disponibili all'inizio o alla fine di un file di testo. Tuttavia, ci sono alcune limitazioni, diciamo che non è possibile stampare solo la riga numero 2 di un file di testo usando il comando head (sebbene la riga numero 2 sia presente nella sezione principale del file). Il comando SED conduce altri comandi al riguardo; Questo comando in Ubuntu aiuta a eseguire operazioni di base su file di testo, come sostituzione, aggiunta, eliminazione ecc. Si osserva che se il comando SED viene utilizzato tranne l'opzione "-i", il risultato verrebbe stampato solo sul terminale. In questo articolo, l'opzione sul posto del comando SED è descritta in dettaglio e può essere adottata con tutte le operazioni SED. Per ottenere una visione approfondita di questa opzione, abbiamo cercato di usarla con altrettanti comandi per costruire basi per gli utenti alle prime armi.