Questi 10 esempi di Sed ti renderanno un utente esperto di Linux

Questi 10 esempi di Sed ti renderanno un utente esperto di Linux

La modifica dei file di testo e dell'output del terminale è un lavoro quotidiano per coloro che amministrano 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, acronimo di Editor di streaming , è uno strumento da riga di comando che consente agli utenti Linux di eseguire operazioni basate su testo su file e output del terminale. Usando sed, gli utenti possono trovare e sostituire parole specifiche in un testo, visualizzare una determinata sezione dell'output e modificare 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 le espressioni regolari con il comando sed per modificare i flussi di testo in modo più efficiente.



La sintassi di base del comando è:

sed [options] [pattern] [filepath]

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





il modo migliore per imparare Microsoft Office

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 trasformerà sicuramente in un utente esperto di Linux.

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





This is a demo text file.
It is an amazing file that will help us all.
The sed command is also great for stream editing.
Want to learn how to use the command?
This is another line in the file.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is a orange.

1. Visualizza una gamma di linee

I comandi di Linux come head e tail restituiscono la prima 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 emettere il contenuto tra le righe 3 e 5 del file file di testo.txt :

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

Il -n flag impedisce a sed di visualizzare lo spazio del modello alla fine di ogni ciclo. Puoi anche usare il --calmatevi e --silenzioso opzioni invece di -n . Il P argomento sta per Stampa e viene utilizzato per visualizzare le linee abbinate all'utente.

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

The sed command is also great for stream editing.
Want to learn how to use the command?
This is another line in the file.

Per emettere l'intero contenuto del file ad eccezione dell'intervallo specificato, utilizzare il D bandiera 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.

This is a demo text file.
It is an amazing file that will help us all.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is a orange.

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:

This is a demo text file.
It is an amazing file that will help us all.
This is another line in the file.
This is the third general line in the file.

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

3. Inserisci spazio tra le righe

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

puoi mescolare e abbinare i marchi di ariete?
sed G textfile.txt

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

sed 'G;G' textfile.txt

4. Sostituisci una parola in un file di testo

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

sed s/originalword/replaceword/g filename

Usando la sintassi sopra menzionata, puoi sostituire la parola Stupefacente insieme a super nel file file di testo.txt :

sed s/amazing/super/g textfile.txt

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

Per sostituire la seconda occorrenza della parola con sed, passa un numero al G discussione. In questo caso:

sed s/amazing/super/g2 textfile.txt

Se vuoi ignorare le maiuscole dei caratteri durante la sostituzione delle parole, usa dare invece di G , dove io sta per ignorare Astuccio.

sed s/Amazing/super/gi textfile.txt

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

5. Sostituisci le parole all'interno di un intervallo

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

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

6. Esegui più sostituzioni contemporaneamente

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

sed 's/amazing/super/g;s/command/utility/gi' textfile.txt

Il sistema visualizzerà il seguente output.

This is a demo text file.
It is an super file that will help us all.
The sed utility is also great for stream editing.
Want to learn how to use the utility?
This is another line in the file.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is a orange.

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 determinata corrispondenza nella riga. Ad esempio, per sostituire la parola a insieme a un se la parola arancia è presente nella riga:

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

L'emissione del comando sopra menzionato produrrà:

This is a demo text file.
It is an super file that will help us all.
The sed utility is also great for stream editing.
Want to learn how to use the utility?
This is another line in the file.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is an orange.

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

8. Sostituisci le parole usando le espressioni regolari

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

Per sostituire tutte le occorrenze della parola Sorprendente o Stupefacente insieme a 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 lspci comando con sed per aggiungere spazi vuoti tra le righe nell'output.

lspci | sed G

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

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

Il suddetto comando sostituisce la parola fonte al posto della parola originale src .

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

10. Modifica e backup del file originale

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

Per eseguire il backup del file originale utilizzando sed, utilizzare il pulsante -io bandiera nel comando.

come migliorare le prestazioni del laptop Windows 10
sed -i'.backup' 's/amazing/super/g' textfile.txt

Verrà creato un nuovo file con il nome file di testo.txt.backup . Puoi controllare che i due file siano diversi usando il differenza comando.

diff textfile.txt textfile.txt.backup

Modificare le 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 i 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.

Condividere Condividere Tweet E-mail 7 modi per ottenere assistenza dalla riga di comando su Linux

Tutti i comandi essenziali per conoscere 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(79 articoli pubblicati)

Deepesh è l'editor junior per Linux di MUO. Scrive guide informative su Linux, con l'obiettivo di fornire un'esperienza felice a tutti i nuovi arrivati. Non sono sicuro dei film, ma se vuoi parlare di tecnologia, è il tuo ragazzo. Nel suo tempo libero, puoi trovarlo a leggere libri, ascoltare diversi generi musicali o suonare la sua chitarra.

Altro da Deepesh Sharma

Iscriviti alla nostra Newsletter

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

Clicca qui per iscriverti