GNU/Linux >> Linux Esercitazione >  >> Linux

Come rimuovere tutti i caratteri di spazio bianco da un file di testo

Lavorare con una distribuzione del sistema operativo Linux ti offre una prospettiva davvero unica su quanto può essere alterabile il mondo informatico. Ad esempio, eliminare gli spazi vuoti sui file di testo può sembrare un'attività noiosa a meno che tu non stia utilizzando Linux come sistema operativo principale.

Gli spazi bianchi non sono solo orizzontali come la spaziatura delle parole in questo articolo o altri caratteri stampabili. Gli spazi bianchi esistono anche come spaziatura verticale di righe e/o paragrafi. Allora perché rimuovere gli spazi bianchi? Il motivo principale è disinfettare la prospettiva del tuo file di testo mirato.

File di testo di riferimento

Considera il seguente file di testo di esempio.

$ sudo nano sample_file.txt 

Come per l'acquisizione dello schermo sopra, possiamo evidentemente notare che il file di testo mostra sintomi di spazi bianchi sia verticali che orizzontali. Possiamo usare il comando cat più il -n opzione per aprire questo file in una vista numerata.

$ cat -n sample_file.txt

Gli ovvi caratteri di spazio bianco visualizzati su un file di testo includono spazi, tabulazioni e interruzioni di riga. Per rimuovere tutti questi caratteri di spazio bianco, prenderemo in considerazione l'aiuto e l'uso di tre comandi Linux integrati.

Metodo 1:utilizzo del comando tr

Il comando tr prenderà il file di testo sopra come input, tradurrà il contenuto del file di testo, cancellerà i caratteri di spazio bianco e successivamente riscriverà sul file un output di caratteri non di spazio vuoto.

Tuttavia, dobbiamo fornire il comando tr con requisiti di esecuzione specifici, ad esempio se rimuovere gli spazi bianchi orizzontali, gli spazi vuoti verticali o entrambi.

Rimuovi gli spazi bianchi orizzontali nel file

Useremo il "[:blank:]" carattere come parte di un comando e in seguito esegui il comando cat per stampare il layout finale del file.

$ tr -d "[:blank:]" < sample_file.txt | cat -n

Come per l'output sopra, abbiamo eliminato con successo i caratteri di spazio bianco orizzontale dal file di testo in Linux.

Rimuovi tutti gli spazi vuoti nel file

Il "[:space:]" l'opzione viene utilizzata per rimuovere gli spazi bianchi orizzontali e verticali da un file di testo.

$ tr -d "[:space:]" < raw_file.txt | cat -n

Metodo 2:utilizzo del comando sed

Poiché il comando sed è comunemente implementato con espressioni regolari, possiamo usarlo nel modo seguente:

$ sed 's/[[:blank:]]//g' sample_file.txt | cat -n               [Remove Horizontal Spaces]
$ sed ':a; N; s/[[:space:]]//g; ta' sample_file.txt | cat -n    [Remove All Spaces]

Metodo 2:utilizzo del comando awk

Questa potente utilità di elaborazione del testo utilizza il suo script simile al C e altre funzioni e variabili integrate per manipolare in modo flessibile l'elaborazione del testo.

Utilizzeremo la sua funzione gsub nel modo seguente per rimuovere gli spazi vuoti orizzontali.

$ awk '{gsub(/[[:blank:]]/,""); print}' sample_file.txt | cat -n 

Per rimuovere tutti i caratteri di spazio bianco da un file di testo, apporteremo la seguente modifica al comando precedente:

$ awk -v ORS="" '{gsub(/[[:space:]]/,""); print}' sample_file.txt | cat -n

Con i tre approcci ai comandi Linux sopra discussi, eliminare gli spazi vuoti indesiderati sui file di testo in Linux non dovrebbe essere un problema.


Linux
  1. Come rimuovere le righe duplicate all'interno di un file di testo?

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

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

  4. Come rimuovere tutte le directory .svn dalle directory delle mie applicazioni

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

Come rimuovere la password da un file PDF in Linux

Come visualizzare i dati da un file di testo in Linux

Come estrarre indirizzi e-mail da file di testo in Linux

Come rimuovere le righe da un file usando il comando Sed

Come rimuovere (^M) caratteri da un file in Linux

Come rimuovere Swap Space da Centos 7.x?