Awk

Awk Taglia spazi bianchi

Awk Taglia spazi bianchi
Come programmatore, potresti dover lavorare con file diversi per archiviare e manipolare i dati. Un'attività di base per la manipolazione dei file comporta la rimozione degli spazi bianchi nei file. Gli spazi bianchi sono composti da spazi, righe vuote, nbsp e tab. I programmatori hanno spesso bisogno di rimuovere gli spazi bianchi in modo che vengano archiviati solo i dati necessari e gli spazi bianchi non necessari possano essere eliminati. Gli spazi bianchi possono essere spazi iniziali (all'inizio della riga) o finali (alla fine della riga).

Di seguito sono inclusi alcuni scenari in cui potrebbe essere necessaria la rimozione di spazi bianchi:

È possibile rimuovere manualmente gli spazi bianchi se un file contiene solo poche righe. Ma, per un file contenente centinaia di righe, sarà difficile rimuovere manualmente tutti gli spazi bianchi. Sono disponibili vari strumenti da riga di comando per questo scopo, inclusi sed, awk, cut e tr. Tra questi strumenti, awk è uno dei comandi più potenti.

Cos'è Awk?

Awk è un linguaggio di scripting potente e utile utilizzato nella manipolazione del testo e nella generazione di report. Il comando awk è abbreviato usando le iniziali di ciascuna delle persone (Aho, Weinberger e Kernighan) che lo hanno sviluppato. Awk consente di definire variabili, funzioni numeriche, stringhe e operatori aritmetici; creare report formattati; e altro ancora.

Questo articolo spiega l'uso del comando awk per tagliare gli spazi bianchi. Dopo aver letto questo articolo, imparerai come utilizzare il comando awk per eseguire quanto segue:

I comandi in questo articolo sono stati eseguiti su Ubuntu 20.04 Sistema Fossa Fossa. Tuttavia, gli stessi comandi possono essere eseguiti anche su altre distribuzioni Linux. Useremo l'applicazione Ubuntu Terminal predefinita per eseguire i comandi in questo articolo. Puoi accedere al terminale usando la scorciatoia da tastiera Ctrl+Alt+T.

A scopo dimostrativo, utilizzeremo il file di esempio denominato "sample.TXT.” per eseguire gli esempi forniti in questo articolo.

Visualizza tutti gli spazi bianchi in un file

Per visualizzare tutti gli spazi bianchi presenti in un file, reindirizzare l'output del comando cat al comando tr, come segue:

$ campione di gatto.txt | tr " " "*" | tr "\t" "&"

Questo comando sostituirà tutti gli spazi bianchi nel file dato con il carattere (*). Dopo aver inserito questo comando, sarai in grado di vedere chiaramente dove sono presenti tutti gli spazi bianchi (inclusi gli spazi bianchi iniziali e finali) nel file.

I caratteri * nello screenshot seguente mostrano dove sono presenti tutti gli spazi bianchi nel file di esempio. Un singolo * rappresenta un singolo spazio bianco.

Taglia tutti gli spazi bianchi

Per rimuovere tutti gli spazi bianchi da un file, reindirizza il comando out of cat al comando awk, come segue:

$ campione di gatto.txt | awk ' gsub(/ /,""); Stampa '

Dove

Il comando precedente sostituisce tutti gli spazi bianchi (/ /) con niente ("").

Nella schermata seguente, puoi vedere che tutti gli spazi bianchi, inclusi gli spazi bianchi iniziali e finali, sono stati rimossi dall'output.

Taglia gli spazi bianchi iniziali

Per rimuovere solo gli spazi bianchi iniziali dal file, reindirizza il comando out of cat al comando awk, come segue:

$ campione di gatto.txt | awk ' sub(/^[ \t]+/, ""); Stampa '

Dove

Il comando precedente sostituisce uno o più spazi all'inizio della stringa (^[ \t]+ ) con niente ("") per rimuovere gli spazi bianchi iniziali.

Nella schermata seguente, puoi vedere che tutti gli spazi bianchi iniziali sono stati rimossi dall'output.

Puoi utilizzare il seguente comando per verificare che il comando precedente abbia rimosso gli spazi bianchi iniziali:

$ campione di gatto.txt | awk ' sub(/^[ \t]+/, ""); stampa ' | tr " " "*" |
tr "\t" "&"

Nello screenshot qui sotto, è chiaramente visibile che solo gli spazi bianchi iniziali sono stati rimossi.

Taglia gli spazi bianchi finali

Per rimuovere solo gli spazi bianchi finali da un file, reindirizza il comando out of cat al comando awk, come segue:

$ campione di gatto.txt | awk ' sub(/[ \t]+$/, ""); Stampa '

Dove

Il comando precedente sostituisce uno o più spazi alla fine della stringa ([ \t]+ $) con nulla ( "") per rimuovere gli spazi bianchi finali.

Puoi utilizzare il seguente comando per verificare che il comando precedente abbia rimosso gli spazi bianchi finali:

$ campione di gatto.txt | awk ' sub(/[ \t]+$/, ""); stampa ' | tr " " "*" | tr "\t" "&"

Dallo screenshot sottostante, è chiaramente visibile che gli spazi bianchi finali sono stati rimossi.

Taglia gli spazi bianchi iniziali e finali

Per rimuovere sia gli spazi iniziali che quelli finali da un file, reindirizza il comando out of cat al comando awk, come segue:

$ campione di gatto.txt | awk ' gsub(/^[ \t]+|[ \t]+$/, ""); Stampa '

Dove

Il comando precedente sostituisce sia gli spazi iniziali che quelli finali (^[ \t]+ [ \t]+$) senza nulla ("") per rimuoverli.

Per determinare se il comando precedente ha rimosso sia gli spazi iniziali che quelli finali nel file, utilizzare il comando seguente:

$ campione di gatto.txt | awk ' gsub(/^[ \t]+|[ \t]+$/, ""); stampa ' |
tr " " "*" | tr "\t" "&"

Dallo screenshot sottostante, è chiaramente visibile che sia gli spazi iniziali che quelli finali sono stati rimossi e rimangono solo gli spazi bianchi tra le stringhe.

Sostituisci più spazi con uno spazio

Per sostituire più spazi con un singolo spazio, reindirizza il comando out of cat al comando awk, come segue:

$ campione di gatto.txt | awk ' gsub(/[ ]+/," "); Stampa '

Dove:

Il comando precedente sostituisce più spazi bianchi ([ ]+) con un singolo spazio bianco (" ").

È possibile utilizzare il seguente comando per verificare che il comando precedente abbia sostituito i molteplici spazi con gli spazi bianchi:

$ campione di gatto.txt | awk ' sub(/[ \t]+$/, ""); stampa ' | | tr " " "*" | tr "\t" "&"

C'erano più spazi nel nostro file di esempio. Come puoi vedere, più spazi bianchi nel campione.txt sono stati sostituiti con un singolo spazio bianco usando il comando awk.

Per tagliare gli spazi bianchi solo in quelle righe che contengono un carattere specifico, come una virgola, due punti o punto e virgola, usa il comando awk con il -F separatore di ingresso.

Ad esempio, di seguito è mostrato il nostro file di esempio che contiene spazi bianchi in ogni riga.

Per rimuovere gli spazi bianchi solo dalle righe che contengono una virgola (,), il comando sarebbe il seguente:

$ gatto campione1.txt | awk -F, '/,/gsub(/ /,""); Stampa'

Dove (-F,) è il separatore del campo di input.

Il comando precedente rimuoverà e visualizzerà solo gli spazi bianchi dalle righe che contengono il carattere specificato (,) in esse. Il resto delle linee rimarrà inalterato.

Conclusione

Questo è tutto ciò che devi sapere per tagliare gli spazi bianchi nei tuoi dati usando il comando awk. La rimozione degli spazi bianchi dai dati potrebbe essere necessaria per diversi motivi. Qualunque sia la ragione, puoi facilmente tagliare tutti gli spazi bianchi nei tuoi dati usando i comandi descritti in questo articolo. Puoi persino tagliare gli spazi bianchi iniziali o finali, tagliare sia gli spazi bianchi iniziali che finali e sostituire più spazi con un singolo spazio con il comando awk.

Come modificare le impostazioni del mouse e del touchpad utilizzando Xinput in Linux
La maggior parte delle distribuzioni Linux viene fornita con la libreria "libinput" per impostazione predefinita per gestire gli eventi di input su un...
Rimappa i pulsanti del mouse in modo diverso per software diversi con X-Mouse Button Control
Forse hai bisogno di uno strumento che possa cambiare il controllo del tuo mouse con ogni applicazione che utilizzi. In questo caso, puoi provare un'a...
Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...