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 inizialeN
– 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 .