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.txtDet 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.txtTekst 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:]] * $' fil20Du 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.txtVi 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.txtHer 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.txtTekstfilen 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
- Grep '^ ...' filnavn.
- Grep '.' Filnavn
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.