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 comandosed
modifica il file in modo permanente. Se vuoi preservare il file originale, è necessario creare una copia del file prima di utilizzaresed
.
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!