Awk

Awk Trim Whitespace

Awk Trim Whitespace
Som programmerer må du kanskje jobbe med forskjellige filer for å lagre og manipulere data. En grunnleggende filmanipuleringsoppgave innebærer å fjerne de hvite områdene i filer. Hvite mellomrom består av mellomrom, blanke linjer, nbsp og faner. Programmører trenger ofte å fjerne mellomrom slik at bare de nødvendige dataene lagres og unødvendige mellomrom kan elimineres. Mellomromene kan enten føre mellomrom (i begynnelsen av linjen) eller etterfølgende (på slutten av linjen) mellomrom.

Følgende inkluderer noen scenarier der det kan være nødvendig å fjerne mellomrom:

Det er mulig å fjerne mellomrom manuelt hvis en fil inneholder bare noen få linjer. Men for en fil som inneholder hundrevis av linjer, vil det være vanskelig å fjerne alle mellomrommene manuelt. Det er forskjellige kommandolinjeverktøy tilgjengelig for dette formålet, inkludert sed, awk, cut og tr. Blant disse verktøyene er awk en av de kraftigste kommandoene.

Hva er awk?

Awk er et kraftig og nyttig skriptspråk som brukes i tekstmanipulering og rapportgenerering. Awk-kommandoen forkortes ved hjelp av initialene hver av folket (Aho, Weinberger og Kernighan) som utviklet den. Awk lar deg definere variabler, numeriske funksjoner, strenger og regneoperatorer; lage formaterte rapporter; og mer.

Denne artikkelen forklarer bruken av awk-kommandoen for å trimme mellomrom. Etter å ha lest denne artikkelen vil du lære hvordan du bruker kommandoen awk til å utføre følgende:

Kommandoene i denne artikkelen ble utført på en Ubuntu 20.04 Focal Fossa system. Imidlertid kan de samme kommandoene utføres på andre Linux-distribusjoner. Vi bruker standard Ubuntu Terminal-applikasjon for å kjøre kommandoene i denne artikkelen. Du kan få tilgang til terminalen ved å bruke hurtigtasten Ctrl + Alt + T.

For demonstrasjonsformål vil vi bruke eksempelfilen kalt “sample.tekst.”For å utføre eksemplene i denne artikkelen.

Vis alle hvite mellomrom i en fil

For å se alle de mellomrom som er tilstede i en fil, rør utgangen fra cat-kommandoen til tr-kommandoen, som følger:

$ katteprøve.txt | tr "" "*" | tr "\ t" "&"

Denne kommandoen erstatter alle mellomrommene i den gitte filen med tegnet (*). Etter at du har angitt denne kommandoen, vil du kunne se tydelig hvor alle mellomrommene (inkludert både ledende og etterfølgende mellomrom) er tilstede i filen.

* Tegnene i skjermbildet nedenfor viser hvor alle mellomrommene er til stede i eksempelfilen. En enkelt * representerer et enkelt mellomrom.

Trim alle hvite mellomrom

For å fjerne alle mellomrommene fra en fil, rør kommandoen ut av katten til kommandoen awk, som følger:

$ katteprøve.txt | awk 'gsub (/ /, ""); skrive ut '

Hvor

Ovennevnte kommando erstatter alle mellomrom (/ /) med ingenting (“”).

I skjermbildet nedenfor kan du se at alle mellomrommene, inkludert de ledende og etterfølgende hvite områdene, er fjernet fra utgangen.

Trim Leading Whitespaces

For å fjerne bare de ledende mellomrommene fra filen, rør kommandoen ut av katten til kommandoen awk, som følger:

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

Hvor

Ovennevnte kommando erstatter ett eller flere mellomrom i begynnelsen av strengen (^ [\ t] +) med ingenting (“”) for å fjerne de ledende mellomrommene.

I skjermbildet nedenfor kan du se at alle de ledende mellomrommene er fjernet fra utdataene.

Du kan bruke følgende kommando for å bekrefte at kommandoen ovenfor har fjernet de ledende mellomrommene:

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

I skjermbildet nedenfor er det tydelig at bare de ledende mellomrommene er fjernet.

Trim Trailing Whitespaces

For å fjerne bare de etterfølgende mellomrommene fra en fil, rør kommandoen ut av katten til kommandoen awk, som følger:

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

Hvor

Ovennevnte kommando erstatter ett eller flere mellomrom på slutten av strengen ([\ t] + $) med ingenting (“”) for å fjerne de etterfølgende mellomrommene.

Du kan bruke følgende kommando for å bekrefte at kommandoen ovenfor har fjernet de etterfølgende mellomrommene:

$ katteprøve.txt | awk 'sub (/ [\ t] + $ /, ""); print '| tr "" "*" | tr "\ t" "&"

Fra skjermbildet nedenfor er det tydelig at de etterfølgende hvite områdene er fjernet.

Trim både ledende og etterfølgende mellomrom

For å fjerne både de ledende og etterfølgende mellomromene fra en fil, rør kommandoen ut av katt til kommandoen awk, som følger:

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

Hvor

Ovennevnte kommando erstatter både de ledende og etterfølgende mellomrom (^ [\ t]+ [\ t] + $) uten noe (“”) for å fjerne dem.

For å avgjøre om kommandoen ovenfor har fjernet både de ledende og etterfølgende mellomrommene i filen, bruker du følgende kommando:

$ katteprøve.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); print '|
tr "" "*" | tr "\ t" "&"

Fra skjermbildet nedenfor er det tydelig at både de ledende og etterfølgende hvite rommene er fjernet, og bare de hvite rommene mellom strengene er igjen.

Erstatt flere mellomrom med ett mellomrom

For å erstatte flere mellomrom med ett mellomrom, rør kommandoen ut av katt til kommandoen awk, som følger:

$ katteprøve.txt | awk 'gsub (/ [] + /, ""); skrive ut '

Hvor:

Ovennevnte kommando erstatter flere mellomrom ([] +) med ett enkelt hvitt mellomrom (““).

Du kan bruke følgende kommando for å bekrefte at kommandoen ovenfor har erstattet flere mellomrom med mellomrom:

$ katteprøve.txt | awk 'sub (/ [\ t] + $ /, ""); print '| | tr "" "*" | tr "\ t" "&"

Det var flere mellomrom i eksempelfilen vår. Som du kan se, flere mellomrom i utvalget.txt-filen ble erstattet med et enkelt hvitt mellomrom ved å bruke kommandoen awk.

For å trimme mellomrommene bare i de linjene som inneholder et bestemt tegn, for eksempel komma, kolon eller semikolon, bruker du kommandoen awk med -F inngangsseparator.

For eksempel, nedenfor, er eksempelfilen vår som inneholder mellomrom på hver linje.

For å fjerne mellomrommene fra bare linjene som inneholder komma (,), vil kommandoen være som følger:

$ kattprøve 1.txt | awk -F, '/, / gsub (/ /, ""); skrive ut'

Hvor (-F,) er inndatafelteskilleren.

Ovennevnte kommando vil bare fjerne og vise mellomrommene fra linjene som inneholder det spesifiserte tegnet (,) i dem. Resten av linjene forblir upåvirket.

Konklusjon

Det er alt du trenger å vite for å trimme mellomrommene i dataene dine ved hjelp av awk-kommandoen. Det kan være nødvendig å fjerne de tomme områdene fra dataene dine av flere forskjellige grunner. Uansett årsak, kan du enkelt trimme alle mellomrommene i dataene dine ved hjelp av kommandoene som er beskrevet i denne artikkelen. Du kan til og med trimme ledende eller etterfølgende mellomrom, trimme både ledende og etterfølgende mellomrom, og erstatte flere mellomrom med et enkelt mellomrom med kommandoen awk.

Mus Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kanskje du trenger et verktøy som kan gjøre at musens kontroll endres med hvert program du bruker. Hvis dette er tilfelle, kan du prøve et program som...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...