Awk Trim Whitespace

Awk Trim Whitespace

"Når du jobber i IT -bransjen, kan du komme over tusenvis av filer som inneholder mange kodelinjer eller enorme datamengder. Selv om dataene i seg selv kan være en medvirkende faktor til filstørrelsen, samler hvitespasninger også størrelsen sterkt. Med den økte filstørrelsen kan du løpe inn i problemer når du lagrer disse filene eller overfører dem til kollegene. Så det er viktig at du fjerner dem for å bedre kontrollere filstørrelsen, men først, la oss ta en titt for å forstå dem i detalj.”

Hva er et hvitrom?

Whitespace er rommet mellom to utskrivbare karakterer. Det kan enten være innenfor en horisontal linje eller vertikalt skille linjer. Med andre ord, mellomrom mellom ord, alle blanke linjer, NBSP -taggen sammen med faner kan betraktes som hvitespaser. De blanke mellomrommene i starten og/eller på slutten av linjene regnes også som hvitespaser.

For å bevare Data Sanity, ender programmerere opp med å skrive kode som er ansvarlig for å fjerne disse hvitespasene når de lagrer data. Følgende tilfeller kan be om fjerning av hvitespasninger:

  • Reformating/refactoring kildekode
  • Rydd opp data
  • Forenkle eventuelle kommandolinjeutganger
  • Reduser filstørrelsen

Det er mulig å fjerne hvitfarer manuelt hvis det er en håndfull data med data i filen. Men når filen inneholder hundrevis av linjer, kan det bli veldig vanskelig å fjerne dem manuelt. For å overvinne dette kan vi bruke de mange kommandolinjeverktøyene som er tilgjengelige for oss, e.g., sed, kuttet, tr og awk. Av disse er AWK den kraftigere kommandoen. La oss utforske det videre.

Hva er awk?

AWK er et veldig kraftig skriptspråk som brukes til datamanipulering og rapportgenerering. AWK -kommandoen er forkortelsen av de første initialene til hver av de tre skaperne Aho, Weinberger og Kernighan. AWK gir brukerne sine muligheter til å definere variabler, strenger, numeriske funksjoner og aritmetiske operatører, samt lage formaterte rapporter, blant mange andre.

I denne artikkelen vil vi utforske ved hjelp av AWK -kommandoen for å trimme hvitespaser fra filene dine. Etter å ha gått gjennom guiden, vet du hvordan du:

  • Trim alle hvitespasninger i en hvilken som helst fil.
  • Trim både de ledende og etterfølgende hvitespasene.
  • Trim alle ledende hvitfarer.
  • Trim alle etterfølgende hvitder.
  • Bytt ut flere mellomrom med en enkelt plass.

Scenariene demonstrert i denne artikkelen er utført på Ubuntu 22.04 Jammy maneter system. Disse kommandoene er også kjørbare på andre distribusjoner også.

Eksempelfil

For denne guiden bruker vi en tekstfil som heter “ASD.tekst". Plassholderinnholdet i prøvefilen ser slik ut:

La oss nå begynne.

Hvordan du ser alle hvitespeddene i filen din?

For å forstå hvitespaser bedre, la oss først se hvordan vi kan identifisere hvitespasninger i en fil. For dette må du røre utgangen fra CAT -kommandoen gjennom TR -kommandoen som sådan:

$ Cat ASD.txt | tr “” “*” | tr “\ t” “&”

Denne kommandoen vil erstatte mellomrom med stjerner og faner mellomrom med “&” symbol. Så snart dette kjøres, vil du kunne se alle hvitespasene i filen din som sådan:

La oss nå utforske bruken av AWK -kommandoen.

Trimming av alle hvitespasninger

For vårt første scenario fjerner vi alle hvitespasene fra vår prøvefil. For å oppnå dette, må vi røre utdataene fra CAT -kommandoen til AWK -kommandoen som sådan:

$ Cat ASD.txt | awk 'gsub ( / /, ""); skrive ut '

Her:

  • GSUB står for global substitusjon, brukt for å erstatte Whitespaces.
  • Double Forward -skråstrekene ( / /) representerer hvitrommet.
  • “” De doble anførselstegnene brukes til å trimme strengene.

Så med kommandoen ovenfor, erstatter vi alle Whitespaces ( / /) med ingenting (“”). Med utgangen fra kommandoen ovenfor, kan du se at alle hvitfarene er fjernet.

Trimming ledende og etterfølgende hvitfarer fra dokumentet

Fra den siste utgangen kan vi se at hvitespasene er fjernet, og etterlater faner og tomme linjer. Vi kan oppdatere kommandoen som ble brukt i det siste eksemplet for å ta vare på de ledende og etterfølgende hvitespasene sammen med faner som sådan:

$ Cat ASD.txt | awk 'gsub (/^[\ t]+| [\ t]+$/, ""); skrive ut '

Ved å bruke elementer fra den tidligere kommandoen, kan du bekrefte at de ledende og etterfølgende hvitbildene er fjernet.

$ Cat ASD.txt | awk 'sub (/^[\ t]+| [\ t]/, ""); print '| tr "" "*" | tr "\ t" "&"

Her er kommandoene du kan bruke til å fjerne henholdsvis disse områdene hver for seg.

Fjerner bare ledende hvitfarer

$ Cat ASD.txt | awk 'sub (/^[\ t]+/, ""); skrive ut '

Fjerner bare etterfølgende hvitespasninger

$ Cat ASD.txt | awk 'sub (/[\ t]+$/, ""); skrive ut '

Bonus: Bytt ut flere mellomrom med en enkelt plass

For å erstatte flere mellomrom med en enkelt eller ingenting, kan du bruke AWK -kommandoen som sådan:

$ Cat ASD.txt | awk 'gsub (/[]+/, ””); skrive ut '

Ved hjelp av TR -kommandoen kan vi se at hvitfarene er fjernet.

Konklusjon

Så med disse demonstrasjonene har vi utforsket forskjellige måter hvor vi kan bruke AWK -kommandoen til å trimme hvitespasene. Å fjerne dem kan komme godt med av forskjellige grunner.

Hvis du får problemer med å bruke det, kan du gjerne nå ut til oss ved å bruke kommentarfeltet nedenfor, så hjelper vi gjerne.