Come usare il comando Sed per eliminare righe in un file

21 gen 2023 2 min di lettura
Come usare il comando Sed per eliminare righe in un file
Indice dei contenuti

Introduzione

Nella maggior parte dei casi, quando si lavora con un file di testo, è probabile che contenga degli spazi vuoti. Questi spazi vuoti possono variare da pochi caratteri a un numero di righe vuote o prive di informazioni. Conservare tali file con spazi non necessari può richiedere molto tempo e risultare scomodo. Potrebbero esserci diversi motivi per conservare questi file, ma il modo migliore per gestirli è eliminare le righe vuote. Questo articolo esplora il comando Unix sed e il suo utilizzo nell'eliminazione di righe vuote in un file.

Cos'è Sed?

Sed sta per stream editor. È un editor della riga di comando non interattivo. Viene utilizzato principalmente per modificare e filtrare i file. Sed è più spesso utilizzato negli script, dove viene utilizzato per modificare un singolo file o più file in sequenza. Sed può essere utilizzato per eseguire una sequenza di azioni di modifica su un singolo file o un gruppo di file. Può essere utilizzato per eliminare righe e parole in un file, sostituire parole e persino aggiungere testo in posizioni specifiche in un file.

Come eliminare una riga

Il comando sed può essere utilizzato per eliminare righe da un file utilizzando il comando d. Il formato generale è:

sed '<range>d' <file>

Il <range> può essere un numero di riga specifico o un intervallo di righe, ad esempio 2d elimina la seconda riga del file, mentre 2,5d elimina le righe 2-5 del file.

Esempio per eliminare la terza riga del file file.txt:

sed '3d' file.txt

Esempio per eliminare la righe 2-5 del file file.txt:

sed '2,5d' file.tx
Nota: Il comando sed modifica il file in modo permanente. Se vuoi preservare il file originale, è necessario creare una copia del file prima di utilizzare sed.

Elimina l'ultima riga dal file

Usa il comando '$d' con il parametro di riga di sed per eliminare l'ultima riga o la riga di piè di pagina da un file. Il seguente comando eliminerà l'ultima riga dal file nome_file.csv:

sed '$d' nome_file

Elimina le righe diverse dalla prima riga

Usa l'operatore di negazione (!) con l'opzione d in sed command. Il seguente comando sed rimuove tutte le righe tranne l'intestazione:

sed '1!d' nome_file

Elimina le righe diverse da quelle specificate

Usa l'operatore di negazione (!) con l'opzione d in sed command. Il seguente comando sed rimuove tutte le righe tranne quelle comprese tra 2 e 5:

sed '2,5!d' nome_file

Eliminare la prima e l'ultima riga

sed '1d;$d' file_name

Eliminare righe vuote o righe vuote

Il comando sed può essere utilizzato per eliminare righe vuote in un file di testo. Per fare ciò, puoi usare il seguente comando:

sed '/^$/d' file_name  

Il comando precedente elimina tutte le righe vuote dal file specificato. Qualsiasi riga contenente un singolo spazio non è considerata una singola riga.

Eliminare le righe che iniziano con il carattere specificato

sed '/^t/d' numbers.csv

Eliminare le righe che terminano con il carattere specificato

sed '/t$/d' numbers.csv

Eliminare le righe che contengono un motivo

sed '/pattern/d' numbers.csv

Conclusione

È sempre necessario pulire i file di testo prima di un'ulteriore elaborazione, poiché potrebbero contenere caratteri indesiderati, come tabulazione, nuova riga, spazio, ecc. Sed offre diversi modi per eliminare righe, parole o persino caratteri da un file. Basta inserire l'operazione desiderata nel prompt dei comandi e il gioco è fatto!

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.