GNU/Linux >> Linux Esercitazione >  >> Linux

Come rimuovere le righe da un file usando il comando Sed

editor di streaming (sed ) è uno strumento importante quando lavori con l'analisi e la trasformazione del testo nei tuoi sistemi basati su nix. Viene utilizzato per trovare, filtrare, sostituire il testo e manipolare il testo come l'inserimento, l'eliminazione, la sostituzione e la ricerca nei file di testo.

[ Potrebbe piacerti anche:Come utilizzare Sed per trovare e sostituire una stringa nei file]

Nella maggior parte delle distribuzioni Linux, il comando sed viene preinstallato e puoi verificarlo utilizzando i seguenti comandi, che mostreranno la posizione binaria del comando e della versione.

$ which sed
$ sed --version

Qui in questo articolo, ti mostrerò come rimuovere le righe da un file usando il comando sed con l'aiuto di un file di esempio che contiene 7 righe. Userò questo file a scopo dimostrativo.

$ cat testfile.txt

First line
second line
Third line
Fourth line
Fifth line
Sixth line
SIXTH LINE

Come eliminare una riga da un file

Per eliminare la riga da un file è possibile utilizzare il comando seguente. Devi sostituire 'N' con il numero di riga e 'd' è eliminare la riga.

$ sed 'Nd' testfile.txt

Se devi eliminare la quarta riga dal file, devi sostituire N=4 .

$ sed '4d' testfile.txt

Come eliminare la prima e l'ultima riga da un file

È possibile eliminare la prima riga da un file utilizzando la stessa sintassi descritta nell'esempio precedente. Devi inserire N=1 che rimuoverà la prima riga.

$ sed '1d' testfile.txt

Per eliminare l'ultima riga da un file utilizzando il comando seguente con ($) segno che denota l'ultima riga di un file.

$ sed '$d' testfile.txt

Come eliminare l'intervallo di righe da un file

È possibile eliminare un intervallo di righe da un file. Supponiamo che tu voglia eliminare le righe da 3 a 5, puoi utilizzare la sintassi seguente.

  • M – numero di riga iniziale
  • N – Numero di riga finale
$ sed 'M,Nd' testfile.txt

Per eliminare effettivamente, usa il seguente comando per farlo.

$ sed '3,5d' testfile.txt

Puoi usare ! simbolo per negare l'operazione di eliminazione. Questo cancellerà tutte le righe tranne l'intervallo specificato (3-5).

$ sed '3,5!d' testfile.txt

Come rimuovere le righe vuote da un file

Per eliminare tutte le righe vuote da un file, eseguire il comando seguente. Un punto importante da notare è l'utilizzo di questo comando, le righe vuote con spazi non verranno eliminate. Ho aggiunto righe vuote e righe vuote con spazi nel mio file di prova.

$ cat testfile.txt

First line
second line
Third line
Fourth line
Fifth line
Sixth line
SIXTH LINE
$ sed '/^$/d' testfile.txt

Dall'immagine sopra, puoi vedere le righe vuote vengono eliminate ma le righe che hanno spazi non vengono eliminate. Per eliminare tutte le righe compresi gli spazi puoi eseguire il comando seguente.

$ sed '/^[[:space:]]*$/d' testfile.txt

[ Potrebbe piacerti anche:Come eliminare le righe vuote nei file utilizzando Grep, Sed e Awk ]

Come eliminare le righe che iniziano con parole in un file

Per eliminare una riga che inizia con una determinata parola, eseguire il comando seguente con ^ il simbolo rappresenta l'inizio della parola seguito dalla parola effettiva.

$ sed '/^First/d' testfile.txt

Per eliminare una riga che termina con una determinata parola, eseguire il comando seguente. La parola da eliminare seguita da $ il simbolo cancellerà le linee.

$ sed '/LINE$/d' testfile.txt

Come apportare modifiche direttamente a un file

Per apportare le modifiche direttamente nel file utilizzando sed devi passare -i flag che apporterà le modifiche direttamente nel file.

$ sed -i '/^[[:space:]]*$/d' testfile.txt 

Siamo giunti alla fine dell'articolo. Il sed comando svolgerà un ruolo importante quando si lavora sulla manipolazione di qualsiasi file. Se combinato con altre utilità Linux come awk , grep puoi fare più cose con sed .


Linux
  1. Rimuovere in modo efficiente le prime due righe da un file di testo?

  2. Eliminazione di righe specifiche da un file nella riga di comando di Linux

  3. Come rimuovere parole duplicate da un file di testo normale usando il comando linux

  4. Come usare sed per rimuovere solo le doppie righe vuote?

  5. Rimuovi le righe pari o dispari da un file di testo

Come creare un file in Linux utilizzando Terminale/riga di comando

Come rimuovere file e directory utilizzando la riga di comando di Linux

Come inviare un'e-mail con allegato file dalla riga di comando

Come inserisco il testo nella prima riga di un file usando sed?

Come caricare un file tramite FTP dalla riga di comando?

Come rimuovere un file senza usare rm?