grep

Hvordan ignorerer jeg tomme linjer i Grep?

Hvordan ignorerer jeg tomme linjer i Grep?
Grep står for Global Regular Expression Print. Det har mange funktioner, dvs.e., søge i en fil, kun søge på navne på en fil, grep rekursivt osv. Grep betragtes som en stærk kommando i søgesektoren. I mange tilfælde står vi over for situationer, hvor vi ikke har brug for mellemrum, eller der er behov for at fjerne uønskede huller i vores data. En af de mest interessante måder at bruge grep er at ignorere eller fjerne blanke linjer fra tekstfilen. Denne procedure udføres ved hjælp af forskellige eksempler. Det er en handling til filredigering. For at gennemgå dette formål skal vi have eksisterende filer i vores system. Via kommandoen grep tillader vi at udskrive data uden blanke linjer.

Syntaks

Grep [mønster] [filnavn]

Efter brug af grep kommer der et mønster. Mønsteret indebærer den måde, vi vil bruge det til at fjerne ekstra plads i dataene. Efter mønsteret beskrives filnavnet, hvorigennem mønsteret udføres.

Forudsætning

For at forstå nytten af ​​grep let er vi nødt til at have Ubuntu installeret på vores system. Angiv brugeroplysninger ved at angive brugernavn og adgangskode for at have privilegier til at få adgang til Linux-applikationerne. Når du er logget ind, skal du åbne applikationen og søge efter en terminal eller anvende genvejstasten på ctrl + alt + T.

Ved at bruge [: blank:] Keyword

Antag at vi har en fil med navnet bfile med en tekstudvidelse. Du kan oprette en fil enten i teksteditoren eller med en kommandolinje i terminalen. For at oprette en fil på terminalen, herunder følgende kommandoer.

$ Echo "tekst, der skal indtastes i en fil"> filnavn.txt

Det er ikke nødvendigt at oprette en fil, hvis den allerede er til stede. Bare vis det ved hjælp af den vedlagte kommando:

$ echo filnavn.txt

Tekst skrevet i disse filer indeholder mellemrum mellem dem, som det ses i nedenstående figur.

Disse tomme linjer kan fjernes ved hjælp af en tom kommando for at ignorere tomme mellemrum mellem ordene eller strengene.

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

Efter anvendelse af forespørgslen fjernes de tomme mellemrum mellem linjerne, og output vil ikke længere indeholde ekstra plads. Det første ord er fremhævet som mellemrum mellem det sidste ord på linjen og mellem de første ord i den næste linje fjernes. Vi kan også anvende betingelser på den samme grep-kommando ved at tilføje denne tomme funktion for at fjerne ubrugelig plads i output.

Ved at bruge [: space:]

Et andet eksempel på ignorering af rummet forklares her.

Uden at nævne filtypen viser vi først den eksisterende fil ved hjælp af kommandoen.

$ kat fil20

Lad os se på, hvordan ekstra plads fjernes ved hjælp af kommandoen grep udover nøgleordet [: space:]. Greps valgmulighed -v hjælper med at udskrive linjer, der mangler tomme linjer og ekstra afstand, som også er inkluderet i en afsnitform.

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

Du vil se, at ekstra linjer fjernes, og output er i sekventeret form linjemæssigt. Sådan er grep -v-metoden så nyttig til at opnå det krævede mål.

Nævner filtypenavne begrænser grep-funktionaliteten til kun at udføre på de bestemte filtypenavne, dvs.e., .tekst eller .mp3. Når vi udfører en justering af en tekstfil, tager vi fileg.txt som en eksempelfil. Først viser vi teksten til stede i den ved hjælp af $ cat-funktionen. Output er som følger:

Ved at anvende kommandoen er vores outputfil opnået. Her kan vi se data uden afstand mellem linjerne, der skrives efter hinanden.

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

Udover lange kommandoer kan vi også gå med de korte skriftlige kommandoer i Linux og Unix til at implementere grep understøtter stenografiske tegn i det.

$ grep 's filnavn.txt

Vi har set, hvordan output opnås ved at anvende kommandoer fra input. Her lærer vi, hvordan input opretholdes tilbage fra output.

$ grep '\ S' filnavn.txt> tmp.txt && mv tmp.txt filnavn.txt

Her bruger vi en midlertidig tekstfil med udvidelse af tekst navngivet som tmp.

Ved at bruge ^ #

Ligesom andre beskrevne eksempler anvender vi kommandoen på tekstfilen ved hjælp af kommandoen cat. Vi kan også vise tekst ved hjælp af ekkokommandoen.

$ echo filnavn.txt

Tekstfilen indeholder 4 linjer i den med mellemrum mellem dem. Disse mellemrumslinjer fjernes let ved hjælp af en bestemt kommando.

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

Regelmæssige udvidede operationer er aktiveret af -E, som tillader alle regulære udtryk, især rør. Et rør bruges som en valgfri “eller” tilstand i ethvert mønster.”^ #”. Dette viser matchningen af ​​tekstlinjer i filen, der begynder med tegnet #. “^ $” Svarer til alle ledige mellemrum i teksten eller de tomme linjer.

Outputtet viser fuldstændig fjernelse af ekstra mellemrum mellem linjerne i datafilen. I dette eksempel har vi set, at i kommandoen, at ”^ #” kommer først, hvilket betyder, at teksten matches først. “^ $” Kommer efter | operatør, så ledig plads matches derefter.

Ved at bruge ^ $

Ligesom eksemplet nævnt ovenfor kommer vi med de samme resultater, fordi kommandoen er næsten den samme. Imidlertid er mønsteret skrevet modsat. Fil22.txt er en fil, som vi skal bruge til at fjerne mellemrum.

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

Den samme metode anvendes undtagen at arbejde med prioritet. Ifølge denne kommando matches først ledige pladser, hvorefter tekstfilerne matches. Outputtet giver en række af linjer ved at fjerne ekstra huller i dem.

Andre enkle kommandoer

Disse er begge så enkle og hjælper med at fjerne huller i tekstlinjer.

Konklusion

Fjernelse af ubrugelige huller i filer ved hjælp af regulære udtryk er en ganske nem tilgang til at opnå en jævn sekvens af data og opretholde konsistens. Eksempler forklares detaljeret for at forbedre dine oplysninger om emnet.

Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...