La modifica dei file di testo e dell'output del terminale è un lavoro quotidiano per coloro che amministrano le macchine Linux. Le utilità della riga di comando come sed consentono a un utente di modificare e cambiare il contenuto di un file di testo direttamente dalla finestra del terminale.

In questo articolo, discuteremo in dettaglio il comando sed, insieme ad alcuni esempi essenziali che dimostrano la potenza dell'utilità sed in Linux.

Cos'è il comando sed?

Il comando sed, che è l'acronimo di Editor di flusso, è uno strumento da riga di comando che consente agli utenti Linux di eseguire operazioni basate su testo su file e output del terminale. Utilizzando sed, gli utenti possono trovare e sostituire parole specifiche in un testo, visualizzare una determinata sezione dell'output e modificare i file di testo senza aprirli.

Le tre operazioni di base supportate dal comando sed sono:

  1. Inserimento
  2. Cancellazione
  3. Sostituzione (trova e sostituisci)

Gli utenti avanzati possono anche implementare espressioni regolari con il comando sed per modificare i flussi di testo in modo più efficiente.

instagram viewer

La sintassi di base del comando è:

sed [opzioni] [pattern] [percorso file]

...dove opzioni sono le varie funzionalità del comando, modello è l'espressione regolare o lo script che desideri abbinare e percorso del file è il percorso del file di testo che contiene il testo.

10 Esempi del comando sed di Linux

Se hai intenzione di diventare un normale utente Linux, sapere come modificare file, cercare e sostituire parole specifiche e filtrare l'output del terminale potrebbe esserti utile. Questa sezione copre alcuni esempi del comando sed che ti trasformeranno sicuramente in un utente esperto di Linux.

Useremo il seguente file di testo per la dimostrazione nel post.

Questo è un file di testo dimostrativo.
È un file straordinario che ci aiuterà tutti.
Il comando sed è ottimo anche per la modifica del flusso.
Vuoi imparare a usare il comando?
Questa è un'altra riga nel file.
Questa è la terza riga generale nel file.
Questo file è denominato come file di testo.
Questa è una mela.
Questa è un'arancia.

1. Visualizza un intervallo di linee

I comandi di Linux come head e tail generano le prime o le ultime dieci righe di un file di testo. Ma cosa succede se si desidera ottenere il contenuto tra due righe specifiche in un file? In tali situazioni, il comando sed potrebbe tornare utile.

Per visualizzare il contenuto tra le righe 3 e 5 del file textfile.txt:

sed -n '3,5p' textfile.txt

Il -n flag impedisce a sed di visualizzare lo spazio del pattern alla fine di ogni ciclo. Puoi anche usare il file --silenzioso e --silenzioso opzioni invece di -n. Il p l'argomento sta per Stampa e viene utilizzato per visualizzare le righe corrispondenti all'utente.

L'esecuzione del suddetto comando sul file di esempio produce il seguente output.

Il comando sed è ottimo anche per la modifica del flusso.
Vuoi imparare a usare il comando?
Questa è un'altra riga nel file.

Per produrre l'intero contenuto del file ad eccezione dell'intervallo specificato, utilizzare il file d flag invece di p nel comando:

sed '3,5d' textfile.txt

Il d flag elimina le stringhe corrispondenti dall'output e visualizza il resto del contenuto.

Questo è un file di testo dimostrativo.
È un file straordinario che ci aiuterà tutti.
Questa è la terza riga generale nel file.
Questo file è denominato come file di testo.
Questa è una mela.
Questa è un'arancia.

2. Visualizza linee non consecutive

Per stampare righe non consecutive tra più intervalli nel file:

sed -n -e '1,2p' -e '5,6p' textfile.txt

Produzione:

Questo è un file di testo dimostrativo.
È un file straordinario che ci aiuterà tutti.
Questa è un'altra riga nel file.
Questa è la terza riga generale nel file.

Il -e la bandiera aiuta esecuzione più azioni utilizzando un unico comando.

3. Inserisci spazio tra le righe

Se per qualsiasi motivo desideri inserire righe vuote tra ogni riga di un file di testo, usa il G argomento con il comando sed predefinito.

sed G textfile.txt

Per inserire più righe vuote nell'output, passare multiple G argomenti separati da punto e virgola (;) personaggio.

sed 'G; G 'textfile.txt

4. Sostituisci una parola in un file di testo

Se vuoi sostituire ogni occorrenza di una parola specifica con qualche altra parola, usa il S e g argomenti con il comando. La sintassi di base per sostituire le parole utilizzando il comando sed è:

sed s / originalword / replaceword / g nomefile

Usando la sintassi sopra menzionata, puoi sostituire la parola sorprendente con super nel file textfile.txt:

sed s / amazing / super / g textfile.txt

Il S argomento denota sostituzione e il g comando viene utilizzato per sostituire il contenuto corrispondente con il contenuto sostitutivo specificato.

Per sostituire la seconda occorrenza della parola con sed, passare un numero a g discussione. In questo caso:

sed s / amazing / super / g2 textfile.txt

Se vuoi ignorare le maiuscole / minuscole mentre sostituisci le parole, usa gi invece di g, dove io sta per ignorare Astuccio.

sed s / Amazing / super / gi textfile.txt

Relazionato: Usando Vi? Ecco come aprire un file, quindi salvare ed uscire

5. Sostituisci le parole all'interno di un intervallo

Puoi anche sostituire parole all'interno di un intervallo specifico.

sed '2,5s / amazing / super / g' textfile.txt

6. Eseguire più sostituzioni contemporaneamente

Se vuoi eseguire due o più sostituzioni contemporaneamente, separa semplicemente i comandi con il file punto e virgola (;) personaggio.

sed's / amazing / super / g; s / comando / utilità / gi 'textfile.txt

Il sistema visualizzerà il seguente output.

Questo è un file di testo dimostrativo.
È un super file che ci aiuterà tutti.
L'utility sed è ottima anche per l'editing di stream.
Vuoi imparare a usare l'utilità?
Questa è un'altra riga nel file.
Questa è la terza riga generale nel file.
Questo file è denominato come file di testo.
Questa è una mela.
Questa è un'arancia.

7. Sostituisci le parole solo se viene trovata una corrispondenza

Puoi anche usare il comando sed per sostituire una parola solo se viene trovata una data corrispondenza nella riga. Ad esempio, per sostituire la parola un con un se la parola arancia è presente nella linea:

sed -e '/ orange / s / a / an / g' textfile.txt

L'emissione del comando sopra menzionato produrrà:

Questo è un file di testo dimostrativo.
È un super file che ci aiuterà tutti.
L'utility sed è ottima anche per l'editing di stream.
Vuoi imparare a usare l'utilità?
Questa è un'altra riga nel file.
Questa è la terza riga generale nel file.
Questo file è denominato come file di testo.
Questa è una mela.
Questa è un'arancia.

Nota che la parola un in linea Questa è una mela non è stato sostituito poiché il sistema non ha trovato la parola arancia dentro.

8. Sostituisci le parole usando espressioni regolari

Per coloro che sanno come utilizzare le espressioni regolari, eseguire operazioni sulle stringhe utilizzando il comando sed diventa molto più semplice. È possibile implementare espressioni regolari per aumentare la potenza del comando.

Per sostituire tutte le occorrenze della parola Sorprendente o sorprendente con super:

sed -e 's / [Aa] mazing / super / g' textfile.txt

Allo stesso modo, puoi anche utilizzare espressioni regolari avanzate per eseguire operazioni specifiche utilizzando il comando sed.

9. Pipe sed con altri comandi

Puoi anche concatenare sed con altri comandi Linux. Ad esempio, puoi reindirizzare il file lspci comando con sed per aggiungere spazi vuoti tra le righe nell'output.

lspci | sed G

Per sostituire parole specifiche nell'output di spettacolo percorso ip comando:

ip route show | sed s / src / source / g

Il comando di cui sopra sostituisce la parola fonte al posto della parola originale src.

Relazionato: Come utilizzare il comando Trova per cercare file in Linux

10. Modifica ed esegui il backup del file originale

Quando si lavora con i file di sistema, è importante eseguire il backup del file originale mentre si apportano le modifiche. Questo ti aiuterà a ripristinare le modifiche nel caso in cui qualcosa si rompa.

Per eseguire il backup del file originale utilizzando sed, utilizzare l'estensione -io flag nel comando.

sed -i'.backup '' s / amazing / super / g 'textfile.txt

Verrà creato un nuovo file con il nome textfile.txt.backup. È possibile verificare che i due file siano diversi utilizzando l'estensione diff comando.

diff textfile.txt textfile.txt.backup

Modifica di stringhe in Linux con sed

A volte, mentre lavori con file di testo sul terminale, la formattazione e la modifica dell'output per una migliore leggibilità diventa un must. Sed e awk sono utilità della riga di comando in Linux che consentono a un utente di lavorare in modo efficiente con i file di testo dividendo i dati in righe separate.

Molti utenti hanno difficoltà a memorizzare gli argomenti e le flag del comando sed poiché ce ne sono molti disponibili per l'uso. Sapere come ottenere manuali da riga di comando per qualsiasi comando Linux ti aiuterà a uscire facilmente da tali situazioni.

E-mail
7 modi per ottenere la guida della riga di comando su Linux

Tutti i comandi essenziali per apprendere i comandi di Linux dalla riga di comando

Leggi Avanti

Argomenti correlati
  • Linux
  • Editor di testo
  • terminale
  • Prompt dei comandi
Circa l'autore
Deepesh Sharma (36 articoli pubblicati)

Deepesh è il Junior Editor per Linux presso MUO. Scrive contenuti informativi su Internet da oltre 3 anni. Nel tempo libero ama scrivere, ascoltare musica e suonare la chitarra.

Altro da Deepesh Sharma

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Ancora un passo…!

Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.

.