grep

Hur ignorerar jag tomma linjer i Grep?

Hur ignorerar jag tomma linjer i Grep?
Grep står för Global Regular Expression Print. Den har många funktioner, dvs.e., söka i en fil, bara söka efter namn på en fil, grep rekursivt, etc. Grep anses vara ett kraftfullt kommando i söksektorn. I många fall står vi inför situationer där vi inte behöver utrymmen, eller det finns ett behov av att ta bort oönskade luckor i vår data. Ett av de mest intressanta sätten att använda grep är att ignorera eller ta bort tomma rader från textfilen. Denna procedur utförs genom olika exempel. Det är en operation för filredigering. För att genomgå detta ändamål måste vi ha befintliga filer i vårt system. Genom kommandot grep tillåter vi det att skriva ut data utan tomma rader.

Syntax

Grep [mönster] [filnamn]

Efter att ha använt grep kommer det ett mönster. Mönstret innebär hur vi vill använda det för att ta bort extra utrymme i data. Efter mönstret beskrivs filnamnet genom vilket mönstret utförs.

Nödvändig förutsättning

För att förstå nyttan av grep enkelt måste vi ha Ubuntu installerat på vårt system. Ange användarinformation genom att ange användarnamn och lösenord för att ha behörighet att få åtkomst till Linux-applikationer. När du har loggat in öppnar du programmet och söker efter en terminal eller använder genvägsknappen för ctrl + alt + T.

Genom att använda [: blank:] nyckelord

Anta att vi har en fil med namnet bfile med ett texttillägg. Du kan skapa en fil antingen i textredigeraren eller med en kommandorad i terminalen. För att skapa en fil på terminalen, inklusive följande kommandon.

$ Echo “text som ska anges i en fil”> filnamn.Text

Det finns inget behov av att skapa en fil om den redan finns. Visa det bara med det bifogade kommandot:

$ echo filnamn.Text

Text skriven i dessa filer innehåller mellanrum mellan dem, vilket framgår av figuren nedan.

Dessa tomma rader kan tas bort med ett tomt kommando för att ignorera tomma mellanslag mellan orden eller strängarna.

$ egrep '^ [[: blank]] * [^ [: blank:] #]' bfil.Text

Efter att frågan har tillämpats tas de tomma blankstegen mellan raderna bort och utdata kommer inte längre att innehålla extra utrymme. Det första ordet markeras när mellanslag mellan det sista ordet på raden och mellan de första orden i nästa rad tas bort. Vi kan också tillämpa villkor på samma grep-kommando genom att lägga till denna tomma funktion för att ta bort värdelöst utrymme i utdata.

Genom att använda [: space:]

Ett annat exempel på att ignorera rymden förklaras här.

Utan att nämna filtillägget visar vi först den befintliga filen med kommandot.

$ cat-fil20

Låt oss titta på hur extra utrymme tas bort med kommandot grep förutom nyckelordet [: space:]. Greps alternativ -v hjälper till att skriva ut rader som saknar tomma rader och extra avstånd som också ingår i en styckeform.

$ grep -v '^ [[; space:]] * $' file20

Du kommer att se att extra rader tas bort och utdata är i sekvenserad form linjemässigt. Det är så grep -v-metoden är så bra för att uppnå det mål som krävs.

Att nämna filtillägg begränsar grep-funktionerna så att de endast kan utföra de specifika filtilläggen, dvs.e., .text eller .mp3. När vi utför en inriktning på en textfil tar vi fileg.txt som en exempelfil. Först visar vi texten i den med funktionen $ cat. Resultatet är som följer:

Genom att använda kommandot har vår utdatafil erhållits. Här kan vi se data utan avstånd mellan raderna som skrivs i följd.

$ grep -v '^ [[: space:]] * $' fileg.Text

Förutom långa kommandon kan vi också gå med de korta skrivna kommandona i Linux och Unix för att implementera grep stöder stenografiska tecken i den.

$ grep 's filnamn.Text

Vi har sett hur utdata erhålls genom att använda kommandon från ingången. Här kommer vi att lära oss hur input bibehålls tillbaka från output.

$ grep '\ S' filnamn.txt> tmp.txt && mv tmp.txt filnamn.Text

Här använder vi en tillfällig textfil med förlängning av text som heter tmp.

Genom att använda ^ #

Precis som andra beskrivna exempel kommer vi att använda kommandot på textfilen med hjälp av cat-kommandot. Vi kan också visa text med ekokommandot.

$ echo filnamn.Text

Textfilen innehåller fyra rader med mellanrum mellan dem. Dessa mellanslag tas lätt bort med ett visst kommando.

$ grep -Ev "^ # | ^ $" filnamn

Regelbundna utökade operationer aktiveras av -E, vilket tillåter alla reguljära uttryck, särskilt rör. Ett rör används som valfritt "eller" villkor i vilket mönster som helst.”^ #”. Detta visar matchningen av textrader i filen som börjar med tecknet #. “^ $” Matchar alla lediga mellanslag i texten eller tomma rader.

Utgången visar fullständigt borttagning av extra utrymme mellan raderna i datafilen. I det här exemplet har vi sett att i kommandot att ”^ #” kommer först, vilket innebär att texten matchas först. “^ $” Kommer efter | så att ledigt utrymme matchas efteråt.

Genom att använda ^ $

Precis som exemplet som nämns ovan kommer vi med samma resultat eftersom kommandot är nästan detsamma. Mönstret är dock skrivet motsatt. Fil22.txt är en fil som vi ska använda för att ta bort mellanslag.

$ grep -v '^ $ | ^ #' filnamn

Samma metod tillämpas förutom att arbeta med prioritet. Enligt det här kommandot matchas först lediga utrymmen och sedan matchas textfilerna. Utgången ger en sekvens av rader genom att ta bort extra luckor i dem.

Andra enkla kommandon

Dessa båda är så enkla och hjälper till att ta bort luckor i textrader.

Slutsats

Att ta bort värdelösa luckor i filer med hjälp av reguljära uttryck är en ganska enkel metod för att uppnå en jämn sekvens av data och upprätthålla enhetlighet. Exempel förklaras på ett detaljerat sätt för att förbättra din information om ämnet.

OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...
SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...
Battle for Wesnoth Tutorial
Slaget om Wesnoth är ett av de mest populära open source-strategispel som du kan spela just nu. Det här spelet har inte bara utvecklats under mycket l...