Awk

Awk Trim Whitespace

Awk Trim Whitespace
Som programmerare kan du behöva arbeta med olika filer för att lagra och manipulera data. En grundläggande filmanipuleringsuppgift handlar om att ta bort mellanslag i filer. Mellanslag består av mellanslag, tomma rader, nbsp och flikar. Programmerare behöver ofta ta bort blanksteg så att endast nödvändig data lagras och onödiga blanksteg kan elimineras. De vita utrymmena kan antingen leda (i början av raden) eller efterföljande (i slutet av raden) mellanslag.

Följande inkluderar några scenarier där det kan vara nödvändigt att ta bort vita utrymmen:

Det är möjligt att ta bort mellanslag manuellt om en fil som bara innehåller några få rader. Men för en fil som innehåller hundratals rader blir det svårt att ta bort alla vita utrymmen manuellt. Det finns olika kommandoradsverktyg tillgängliga för detta ändamål, inklusive sed, awk, cut och tr. Bland dessa verktyg är awk en av de mest kraftfulla kommandona.

Vad är awk?

Awk är ett kraftfullt och användbart skriptspråk som används vid textmanipulation och rapportgenerering. Awk-kommandot förkortas med initialerna var och en av folket (Aho, Weinberger och Kernighan) som utvecklade det. Med Awk kan du definiera variabler, numeriska funktioner, strängar och aritmetiska operatorer; skapa formaterade rapporter; och mer.

Den här artikeln förklarar användningen av kommandot awk för att trimma vita utrymmen. Efter att ha läst den här artikeln lär du dig hur du använder kommandot awk för att utföra följande:

Kommandona i den här artikeln utfördes på en Ubuntu 20.04 Focal Fossa-system. Samma kommandon kan dock också utföras på andra Linux-distributioner. Vi använder standardapplikationen Ubuntu Terminal för att köra kommandona i den här artikeln. Du kan komma åt terminalen med tangentbordsgenvägen Ctrl + Alt + T.

För demonstrationsändamål kommer vi att använda exempelfilen med namnet “sample.Text.”För att utföra exemplen i den här artikeln.

Visa alla blanksteg i en fil

För att se alla vita utrymmen i en fil, rör utmatningen från kattkommandot till tr-kommandot enligt följande:

$ kattprov.txt | tr "" "*" | tr "\ t" "&"

Detta kommando ersätter alla mellanslag i den angivna filen med (*) -tecknet. När du har angett det här kommandot kommer du att kunna se tydligt var alla blanksteg (inklusive både ledande och efterföljande blanksteg) finns i filen.

* Tecken i följande skärmdump visar var alla mellanslag finns i exempelfilen. En enda * representerar enstaka blanksteg.

Trimma alla vita utrymmen

För att ta bort alla mellanslag från en fil, rör kommandot out of cat till kommandot awk enligt följande:

$ kattprov.txt | awk 'gsub (/ /, ""); skriva ut '

Var

Ovanstående kommando ersätter alla mellanslag (/ /) med ingenting (“”).

I följande skärmdump kan du se att alla blanksteg, inklusive de ledande och bakre blanksteg, har tagits bort från utdata.

Trimma ledande vita utrymmen

För att ta bort endast de ledande vita utrymmena från filen, rör kommandot out of cat till kommandot awk enligt följande:

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

Var

Ovanstående kommando ersätter ett eller flera mellanslag i början av strängen (^ [\ t] +) med ingenting (“”) för att ta bort de ledande vita utrymmena.

I följande skärmdump kan du se att alla ledande blanksteg har tagits bort från utdata.

Du kan använda följande kommando för att verifiera att ovanstående kommando har tagit bort de ledande vita utrymmena:

$ kattprov.txt | awk 'sub (/ ^ [\ t] + /, ""); skriva ut '| tr "" "*" |
tr "\ t" "&"

I skärmdumpen nedan är det tydligt att endast de ledande vita utrymmena har tagits bort.

Trim släta vita utrymmen

För att ta bort endast de efterföljande vita utrymmena från en fil, rör kommandot out of cat till kommandot awk enligt följande:

$ kattprov.txt | awk 'sub (/ [\ t] + $ /, ""); skriva ut '

Var

Ovanstående kommando ersätter ett eller flera mellanslag i slutet av strängen ([\ t] + $) med ingenting (“”) för att ta bort de efterföljande vita utrymmena.

Du kan använda följande kommando för att verifiera att ovanstående kommando har tagit bort de efterföljande vita utrymmena:

$ kattprov.txt | awk 'sub (/ [\ t] + $ /, ""); skriva ut '| tr "" "*" | tr "\ t" "&"

Från skärmdumpen nedan är det tydligt att de bakre vita utrymmena har tagits bort.

Trimma både ledande och efterföljande mellanslag

För att ta bort både de ledande och efterföljande vita utrymmena från en fil, rör kommandot out of cat till kommandot awk enligt följande:

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

Var

Ovanstående kommando ersätter både ledande och bakre utrymme (^ [\ t]+ [\ t] + $) utan något (“”) för att ta bort dem.

För att avgöra om ovanstående kommando har tagit bort både de ledande och efterföljande vita utrymmena i filen, använd följande kommando:

$ kattprov.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); skriva ut '|
tr "" "*" | tr "\ t" "&"

Från skärmdumpen nedan är det tydligt att både de ledande och efterföljande vita utrymmena har tagits bort, och bara de vita mellanrummen kvar.

Ersätt flera mellanslag med ett mellanslag

För att ersätta flera mellanslag med ett enda utrymme, rör kommandot out of cat till kommandot awk enligt följande:

$ kattprov.txt | awk 'gsub (/ [] + /, ""); skriva ut '

Var:

Ovanstående kommando ersätter flera mellanslag ([] +) med ett enda vitt mellanslag (““).

Du kan använda följande kommando för att verifiera att kommandot ovan har ersatt flera mellanslag med vita mellanslag:

$ kattprov.txt | awk 'sub (/ [\ t] + $ /, ""); skriva ut '| | tr "" "*" | tr "\ t" "&"

Det fanns flera mellanslag i vår exempelfil. Som du kan se flera blanksteg i provet.txt-filen ersattes med ett enda vitt utrymme med kommandot awk.

Använd bara kommandot awk för att trimma mellanslag i endast de rader som innehåller en viss karaktär, som komma, kolon eller semikolon -F ingångsseparator.

Till exempel visas nedan vår exempelfil som innehåller blanksteg i varje rad.

För att ta bort mellanslag från endast de rader som innehåller ett komma (,) skulle kommandot vara som följer:

$ kattprov1.txt | awk -F, '/, / gsub (/ /, ""); skriva ut'

Var (-F,) är inmatningsfältavgränsaren.

Ovanstående kommando tar bara bort och visar mellanslag från raderna som innehåller det angivna tecknet (,) i dem. Resten av raderna förblir opåverkade.

Slutsats

Det är allt du behöver veta för att trimma mellanslag i dina data med kommandot awk. Det kan krävas av flera olika skäl att ta bort mellanslag från dina data. Oavsett orsaken är det enkelt att klippa alla vita utrymmen i dina data med hjälp av kommandona som beskrivs i den här artikeln. Du kan till och med trimma ledande eller efterföljande mellanslag, trimma både ledande och efterföljande mellanslag och ersätta flera mellanslag med ett enda mellanslag med kommandot awk.

Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...
De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...
Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...