Come rimuovo le righe da un file usando il comando SED

Come rimuovo le righe da un file usando il comando SED
Il comando SED è noto come editor di streaming. Il comando SED viene utilizzato in Linux per eseguire la trasformazione del testo di base.

Uno dei tanti comandi essenziali di Linux è anche il comando SED che svolge un ruolo vitale nella manipolazione dei file. È usato per molti scopi; Alcuni dei principali sono i seguenti.

Rimuovere o eliminare quella particolare linea che corrisponde ai motivi dati.

  • Rimozione di linee con espressioni regolari.
  • Basato sulla posizione di un file, elimina una riga specifica.

Quindi, se stai pensando di rimuovere le righe da un file usando il comando SED, leggi il nostro articolo dall'inizio alla fine. Ti daremo un breve sui metodi per rimuovere le linee

Come rimuovo le righe da un file usando il comando SED?

Useremo il comando SED senza -I in questo articolo perché è un articolo dimostrativo. Un metodo simile è l'opzione "secco", che mostra tutti i valori per il file senza apportare modifiche.

Usando il comando SED, possiamo rimuovere le righe a seconda dell'ambiente usando -i.

Per mostrare il comando SED, creiamo un file chiamato Linuxhintos.TXT. Al fine di fornire informazioni migliori, includiamo questi numeri di riga nei seguenti contenuti.

Rimozione delle righe da un file in base alla posizione

Questa parte spiegherà l'uso del comando sed per rimuovere le righe da un file 'Linuxhintos.txt "in base alla sua posizione.

Innanzitutto, aprire il file utilizzando il comando seguente:

gatto ~//

Ora esegui il comando seguente per eliminare la prima riga:

file sed 'nd'

Nel comando sopra:

N- Riga "nth" in un file

D- Eliminazione del file

Quindi, eseguiamo questo comando nel nostro esempio per eliminare la decima riga dal file di testo:

Documenti del CD
Linuxhintos Sed '10D'.TXT

Rimuovi l'ultima riga da un file

Se dobbiamo rimuovere l'ultima riga dal file, anziché 'n' nella sintassi usata sopra, useremo '$.'Qui, $ rappresenta l'ultima riga.

File '$ d' Sed

Dopo questo, il nostro file cambierà in qualcosa del genere.

Rimuovi insieme la prima riga e l'ultima riga

Se vogliamo rimuovere la prima e le ultime righe, dobbiamo combinare i due comandi sopra.

sed 'nd; $ d' nome file

Con questo comando, entrambe le nostre prime e le ultime righe vengono rimosse dal file contemporaneamente.

Come puoi vedere nell'immagine sopra, la prima e l'ultima riga sono state rimosse dal file di testo.

Rimuovi una gamma di linee

Il comando SED può rimuovere le righe di qualsiasi intervallo. Per questo, dobbiamo solo inserire numeri di linea "minimo" e "massimo".

In questo esempio, rimuoveremo le linee che vanno da 4 a 7 numeri.

File '4,7d' Sed

Dopo aver rimosso queste gamme di righe, il nostro file sembrerà così.

Rimuovere più linee

Sed può anche rimuovere più linee in un set. Come puoi vedere, abbiamo rimosso la terza, sesta, ottava e ultima riga in questo esempio.

sed '3d; 6d; 8d; $ d' file

Quando si applica il comando SED scritto sopra, le seguenti modifiche si verificano nel nostro file 'Linuxhintos.TXT'.

Rimozione di linee diverse dalla linea specificata o dalla gamma di linee specificate

Attraverso il comando SED, rimuoviamo quelle righe dai file che non sono definiti nel comando, i.e., Le linee diverse da quelle descritte vengono rimosse.

Da questo file, rimuoveremo le righe rimanenti a parte i numeri da 4 a 7.

Sed '4,7! d 'file

Qui, il segno di "!"Rappresenta che non dovremmo rimuovere la riga di questo numero specifico dal file.

! - utilizzato per mantenere il numero specifico di righe dal file

Dopo questo, il nostro file assomigliarà a questo:

Rimuovi le righe vuote o vuote

Il comando SED scritto di seguito rimuove le righe vuote o vuote dal file appropriato.

file sed '/^$/d'

Poiché non ci sono righe vuote o vuote nel nostro file, non si sono verificate modifiche:

Rimuovere le righe dal file in base al modello

Nella seconda parte, vedremo che con l'aiuto del comando SED, come rimuoviamo le righe di un modello simile.

Rimozione di linee che contengono uno schema

Nell'esempio, il comando seguente rimuove le righe corrispondenti al modello "Sistema" dal file 'LinuxHintos.TXT'.

file sed '/system/d'

Quindi, dobbiamo rimuovere quelle linee che non hanno "non disponibili". Ecco perché eseguiremo il comando seguente:

sed '/non disponibile/d' linuxhintos.TXT

Rimozione di linee che contengono una o più stringhe

Attraverso il comando SED, possiamo rimuovere le righe corrispondenti al modello "non aggiornato" o "non disponibile" dal file 'LinuxHintos.txt 'e quel comando è qualcosa del genere:

sed '/non aggiornato \ | non disponibile/d' linuxhintos.TXT

Rimozione di linee che iniziano con un carattere specifico

Possiamo rimuovere tutte le righe che iniziano con qualsiasi carattere attraverso il comando SED. Abbiamo creato un nuovo file chiamato 'LinuxHintos.txt 'con i seguenti contenuti:

Il comando SED seguente rimuoverà tutte le righe che iniziano con il carattere "A".

file sed '/^a/d'

Rimuoveremo tali righe dal nostro file, che iniziano con 'A' e 'L'. Per il quale useremo il seguente comando.

file sed '/^[al]/d'

Usando SED, rimuoviamo tutte le linee che iniziano con "A" e finendo con la stringa "Linux".

sed '/^(a).*(Linux)/D 'File

Rimozione di linee che si terminano con un carattere specificato

Questo comando SED rimuove tutte le righe che terminano con “M."

file sed '/m $/d'

Il seguente comando SED rimuoverà le righe che terminano con entrambi i caratteri 'M' e 'X'.

file sed '/[xm] $/d'

Le righe dei caratteri che terminano con "M" e "X" vengono rimosse dal nostro file; Quindi, il nostro file sembrerà così.

Rimozione di tutte le linee che iniziano con maiuscole

Rimuoveremo tutte queste righe dal file usando il comando seguente: una lettera maiuscola.

file sed '/^[a-z]/d'

Dopo aver applicato il comando sopra, tutte le righe del nostro file che sono iniziate con lettere maiuscole verranno rimosse e la modifica nel nostro file sarà così.

Rimozione di una linea di pattern di abbinamento con un intervallo specificato

Con l'aiuto del seguente comando, rimuoveremo solo quelle righe da alcune linee definite con uno schema specifico.

Questo esempio rimuove solo le righe con i modelli Linux dal file tra 1 e 6 righe.

sed '1,6 /linux/d;

Dopo aver applicato il comando, il nostro file 'sed - demo -1.txt 'sembrerà qualcosa di simile.

Elimineremo la seconda riga con il seguente comando SED solo se contiene il modello "OpenSuse".

File Sed '2 /OpenSUSUS/D;'

Il comando appropriato rimuoverà la seconda riga dal nostro file 'sed - demo -1.txt "in quanto ha un modello specifico di" Opensuse."

Il comando appropriato rimuoverà la seconda riga dal nostro file 'sed - demo -1.txt "in quanto ha un modello specifico di" Opensuse."

Possiamo anche eliminare la riga corrispondente al modello "Sistema" e la riga seguente nel file utilizzando il comando SED.

file sed '/system/n; d;'

Rimuovere le linee con modelli specifici

È possibile rimuovere tutte le righe seguendo il modello "centOS" usando il comando SED.

file sed '/centos/, $ d'

Rimozione di linee che contengono numeri/cifre

Con il comando SED scritto di seguito, possiamo rimuovere tutte le righe contenenti "cifre.'

file sed '/[0-9]/d'

Apportando alcune modifiche nel comando SED, rimuoveremo tutte queste righe dal file che iniziano solo con le cifre.

file sed '/^[0-9]/d'

Dopo questo comando, tutte le righe che iniziano con le cifre verranno rimosse dal nostro file.

Ancora una volta, apportando alcune modifiche al comando, rimuoveremo solo quelle righe dal file che termina con una cifra.

file sed '/[0-9] $/d'

Rimozione di righe che contengono caratteri alfabetici da un file

Con il comando SED, elimineremo tutte le righe dal file 'Linuxhintos.txt ", che contengono caratteri alfabetici.

file sed '/[a-za-z]/d'

Conclusione

Questo articolo mostra diversi esempi di rimozione delle righe da un file usando il comando SED. Vediamo come con l'aiuto del comando SED, possiamo facilmente rimuovere qualsiasi riga dai file. Se ricordiamo questi comandi, allora risparmiamo molto tempo riducendo.