Awk Trim Whitespace

Awk Trim Whitespace

“Quando si lavora nel settore IT, puoi imbatterti in migliaia di file contenenti molte righe di codice o enormi quantità di dati. Sebbene i dati stessi possano essere un fattore che contribuisce alla dimensione del file, anche gli spazi bianchi aggravano notevolmente le dimensioni. Con la maggiore dimensione del file, è possibile riscontrare problemi durante la memorizzazione di questi file o trasferiscili ai tuoi colleghi. Quindi, è indispensabile rimuoverli per controllare meglio la dimensione del file, ma prima, diamo uno sguardo per capirli in dettaglio."

Cos'è uno spazio bianco?

Lo spazio bianco è lo spazio tra due caratteri stampabili. Può essere all'interno di una linea orizzontale o di separazione verticalmente. In altre parole, lo spazio tra le parole, qualsiasi riga vuota, il tag NBSP insieme alle schede può essere considerato come spazi bianchi. Gli spazi vuoti all'inizio e/o alla fine delle linee sono anche considerati spazi bianchi.

Al fine di preservare la sanità mentale dei dati, i programmatori finiscono per scrivere codice che è responsabile della rimozione di questi spazi bianchi durante la memorizzazione dei dati. I seguenti casi possono richiedere la rimozione di spazi bianchi:

  • Riformattazione/refactoring Codice sorgente
  • Pulire i dati
  • Semplifica qualsiasi output della riga di comando
  • Ridurre la dimensione del file

È possibile rimuovere manualmente gli spazi bianchi se ci sono una manciata di linee di dati nel file. Ma quando il file contiene centinaia di righe, può diventare molto difficile rimuoverle manualmente. Per ovviare a questo, possiamo impiegare i numerosi strumenti di comando disponibili per noi, E.G., Sed, Cut, Tr e Awk. Tra questi, Awk è il comando più potente. Esploriamo ulteriormente.

Cosa è awk?

AWK è un linguaggio di scripting molto potente utilizzato per la manipolazione dei dati e la generazione di report. Il comando Awk è l'abbreviazione delle prime iniziali di ciascuno dei tre creatori Aho, Weinberger e Kernigan. AWK consente ai suoi utenti di definire variabili, stringhe, funzioni numeriche e operatori aritmetici, oltre a creare rapporti formattati, tra molti altri.

In questo articolo, esploreremo usando il comando awk per tagliare le spazi bianchi dai tuoi file. Dopo aver attraversato la guida, saprai come:

  • Taglia tutti gli spazi bianchi in qualsiasi file.
  • Tagliare sia le spazi bianchi che hanno segnato.
  • Taglia tutti gli spazi bianchi principali.
  • Taglia tutti gli spazi bianchi finali.
  • Sostituire più spazi con un singolo spazio.

Gli scenari dimostrati in questo articolo vengono eseguiti su Ubuntu 22.04 Jammy Jellyfish System. Questi comandi sono anche eseguibili su altre distribuzioni.

File di esempio

Per questa guida, useremo un file di testo chiamato "ASD.TXT". Il contenuto di segnaposto del file di esempio sembra questo:

Ora, iniziamo.

Come visualizzare tutte le spazi bianchi nel tuo file?

Per capire meglio gli spazi bianchi, vediamo prima come possiamo identificare gli spazi bianchi in un file. Per questo, è necessario pipì l'output dal comando CAT attraverso il comando TR in quanto tale:

$ gatto asd.txt | Tr "" "*" | Tr "\ t" "&"

Questo comando sostituirà gli spazi con asterischi e schede spazi con il "&" simbolo. Non appena questo esegue, sarai in grado di vedere tutte le spazi bianchi nel tuo file in quanto tale:

Ora esploriamo l'uso del comando Awk.

Tagliando tutti gli spazi bianchi

Per il nostro primo scenario, rimuoviamo tutte le spazi bianchi dal nostro file di esempio. Per raggiungere questo obiettivo, dobbiamo pilotare l'output del comando Cat al comando AWK in quanto tale:

$ gatto asd.txt | awk 'gsub ( / /, ""); stampa '

Qui:

  • GSUB sta per una sostituzione globale, utilizzata per sostituire spazi bianchi.
  • Le tagli a doppio avanti ( / /) rappresentano lo spazio bianco.
  • "" I doppi virgoletti vengono utilizzati per tagliare le corde.

Quindi, con il comando sopra, stiamo sostituendo tutti gli spazi bianchi ( / /) senza nulla (""). Con l'output dal comando sopra, puoi vedere che tutti gli spazi bianchi sono stati rimossi.

Tagliare spazi bianchi leader e finali dal tuo documento

Dall'ultimo output, possiamo vedere che le spazi bianche sono stati rimossi, lasciando alle spalle le schede e le linee vuote. Possiamo aggiornare il comando utilizzato nell'ultimo esempio per prenderci cura delle basi principali e finali insieme alle schede in quanto tale:

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

Utilizzando elementi del comando precedente, è possibile verificare che le spazi bianche leader e segnalano siano state rimosse.

$ gatto asd.txt | awk 'sub (/^[\ t]+| [\ t]/, ""); Stampa '| Tr "" "*" | Tr "\ t" "e"

Ecco i comandi che puoi usare per rimuovere questi spazi separatamente, rispettivamente.

Rimuovere solo spazi bianchi conducenti

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

Rimozione solo di spazi bianchi finali

$ gatto asd.txt | awk 'sub (/[\ t]+$/, ""); stampa '

Bonus: sostituire più spazi con un singolo spazio

Per sostituire più spazi con uno o nulla, è possibile utilizzare il comando awk in quanto tale:

$ gatto asd.txt | awk 'gsub (/[]+/, ""); stampa '

Usando il comando TR, possiamo vedere che gli spazi bianchi sono stati rimossi.

Conclusione

Quindi, con queste dimostrazioni, abbiamo esplorato vari modi in cui possiamo usare il comando awk per tagliare le spazi bianchi. Rimuoverli potrebbe tornare utile per vari motivi.

Se ti imbatti in problemi utilizzandolo, sentiti libero di contattarci usando la sezione commenti qui sotto e saremo felici di aiutarti.