Begynn med Grep 2 21, behandles binære filer forskjellig. Når du søker binære data, kan grep nå behandle ikke-tekstbyte som linjeterminatorer. Dette kan øke ytelsen betydelig. Så det som skjer nå er det med binære data, alle ikke-tekstbyte inkludert newlines blir behandlet som line terminators Hvis du vil endre denne oppførselen, kan du. bruke - tekst Dette vil sikre at bare nye linjer er line terminators. use - null-data Dette vil sikre at bare null bytes er line terminators. answered Jul 18 15 på 0 19. Din Svar.2017 Stack Exchange, Inc. Linux og Unix grep command. grep som står for global regular expression print, behandler tekstlinje for linje og skriver ut eventuelle linjer som samsvarer med en spesifisert pattern. grep syntaks. Grep er et kraftig verktøy for å matche et vanlig uttrykk mot tekst i en fil, flere filer eller en strøm av inngang Det søker etter PATTERNEN av teksten du angir på kommandolinjen, og gir resultater for deg. Eksempelbruk. vil raskt finne uttrykket våre produkter i HTML-filer på maskinen din La oss starte med å søke en enkelt fil Her er vår PATTERN våre produkter og vår FIL er. En enkelt linje ble funnet som inneholder vårt mønster, og grep utfører hele matchende linje til terminalen The linjen er lengre enn vår terminalbredde, slik at teksten går rundt til følgende linjer, men denne utgangen tilsvarer nøyaktig en linje i vår FILE. Notat PATTERNET tolkes med grep som et vanlig uttrykk I eksemplet ovenfor har alle tegnene vi brukte bokstaver og et mellomrom er tolket bokstavelig talt i regulære uttrykk, så bare det nøyaktige uttrykket vil bli matchet Andre tegn har spesielle betydninger, men noen skilletegn, for eksempel For mer informasjon, se vår Regular Expression Quick Reference. Viewing grep-utdata i color. If Vi bruker alternativet --farger, våre vellykkede kamper vil bli uthevet for oss. Visning av linjenumre for vellykkede kamper. Det blir enda mer nyttig hvis vi vet hvor matchingslinjen vises i vår fil Hvis vi spesifiserer - n alternativet, vil grep prefikse hver matchende linje med linjenummeret. Vår matchende linje er prefiks med 18 som forteller oss at dette tilsvarer linje 18 i filen. Forbereder sakssikre grep-søk. Hva om vår produkter vises i begynnelsen av en setning, eller vises i alle store bokstaver. Vi kan spesifisere alternativet - i for å utføre en tilfeldig innstilt kamp. Ved hjelp av - i-alternativet finner grep en kamp på linje 23 også. Søke flere filer ved hjelp av en wildcard. If vi har flere filer å søke, kan vi søke dem alle ved hjelp av et jokertegn i vårt FIL-navn I stedet for å spesifisere kan vi bruke en stjerne og utvidelsen Når kommandoen utføres, vil skallet utvide asterisken til navnet på noen fil den finner i den nåværende katalogen som slutter in. Notice at hver linje starter med den spesifikke filen der den aktuelle matchen forekommer. Rekursivt søker underdirectories. We kan utvide vårt søk til underkataloger og eventuelle filer de inneholder ved hjelp av - r alternativet, som forteller grep for å utføre søket rekursivt La oss endre vårt FIL-navn til bare en stjerne, slik at det vil matche alle filer eller katalognavn, og ikke bare HTML-filer. Dette gir oss tre ekstra kamper Merk at katalognavnet er inkludert for alle matchende filer som ikke er i gjeldende katalog. Bruk regelmessige uttrykk for å utføre kraftigere søk. Den virkelige kraften til grep er at den kan brukes til å matche regulære uttrykk. Det er hva re i grep står for Vanlige uttrykk, bruk spesialtegn i PATTERNEN streng for å matche et bredere utvalg av strenger La oss se på et enkelt eksempel. La oss si at du vil finne alle forekomster av et uttrykk som ligner på våre produkter i HTML-filene dine, men uttrykket skal alltid starte med vår og slutte med produkter Vi kan spesifisere dette PATTERNET i stedet for våre produkter. I vanlige uttrykk blir perioden tolket som et tegn med en tegn. Det betyr at et tegn som vises på dette stedet, vil samsvare med stjernen. arakter, vises null eller flere ganger, vil matche Så kombinasjonen vil matche et hvilket som helst antall tegn. For eksempel vil våre fantastiske produkter, våre, de beste produktene og selv våre produkter samsvare Og fordi vi angir alternativet - i, VÅRE PRODUKTER OG OVERSKRIVNINGER SAMMENLIKEHOLD La oss kjøre kommandoen med dette vanlige uttrykket, og se hvilke ekstra kamper vi kan få. Her fikk vi også en kamp fra uttrykket våre fine produkter. Grep er et kraftig verktøy som kan hjelpe deg arbeide med tekstfiler, og det blir enda sterkere når du blir komfortabel ved hjelp av vanlige uttrykk. Teknisk beskrivelse. grep søker de angitte inntastede filene eller standardinngangen hvis ingen filer heter, eller hvis en enkelt dash - er gitt som filnavn for linjer som inneholder en kamp til den oppgitte PATTERNEN Som standard skriver grep de tilsvarende linjene. I tillegg er tre variantprogrammer egrep fgrep og rgrep available. egrep er det samme som løpende grep - E I denne modusen evaluerer grep din PATTERN stri ng som et utvidet regulært uttrykk ERE I dag utvider ERE ikke veldig langt utover grunnleggende regulære uttrykk, men de kan fortsatt være veldig nyttige. For mer informasjon om utvidede regulære uttrykk, se Basic vs Extended Regular Expressions below. fgrep er det samme som løpende grep - F I denne modusen evaluerer grep din PATTERN-streng som en fast streng, hvert tegn i strengen din behandles bokstavelig. For eksempel, hvis strengen inneholder en stjerne, vil grep forsøke å matche den med en faktisk stjerne snarere enn å tolke dette som et jokertegn Hvis strengen inneholder flere linjer hvis den inneholder nye linjer, vil hver linje bli ansett som en fast streng, og noen av dem kan utløse en match. rgrep er den samme som løpende grep - r I denne modusen vil grep utføre søket rekursivt hvis det møter en katalog, vil den krysse inn i den katalogen og fortsette å søke Symboliske koblinger ignoreres hvis du vil søke kataloger som er symbolsk koblet, bør du bruke - R optio n i stedet. I eldre operativsystemer var egrep fgrep og rgrep forskjellige programmer med egne eksempler. I moderne systemer er disse spesielle kommandoenavnene ganske enkelt snarveier for å grep med de aktuelle flaggene. De er funksjonelt likeverdige. Generelle alternativer. Skriv en hjelpemelding kort oppsummering av kommandolinjealternativer, og avslutte. Hvis mulig, bruk MMAP-systemanropet til å lese inntasting, i stedet for standardlesesamtalen. I noen situasjoner kan --mmap gi bedre ytelse. - Imap kan forårsake udefinert oppførsel, inkludert kjernefelt hvis en inngangsfil krympes mens grep opererer, eller hvis det oppstår en IO-feil. Trekk filen s som binær Som standard, under MS-DOS og MS-Windows, grep gisser filtypen ved å se innholdet i de første 32KB-lesene fra filen Hvis grep bestemmer at filen er en tekstfil, strimler den CR-tegnene fra den opprinnelige filinnholdet for å gjøre regelmessige uttrykk med og fungerer riktig. Angi - U overrules dette gjetninget, forårsaker alle filer å bli lest og sendt til matchende mekanisme ordentlig hvis filen er en tekstfil med CR LF par på slutten av hver linje, vil dette føre til at noen vanlige uttrykk mislykkes. Dette alternativet har ingen effekt på andre plattformer enn MS-DOS og MS - Windows. Treat innspillet som et sett med linjer, hver termineres av en null byte ASCII NUL-tegnet i stedet for en newline Som alternativet - Z eller --null, kan dette alternativet brukes med kommandoer som sort - z for å behandle vilkårlig filnavn. Regulære uttrykk. Et vanlig uttrykk er et mønster som beskriver et sett med strenge. Regelmessige uttrykk er konstruert analogt med aritmetiske uttrykk, ved å bruke ulike operatører til å kombinere mindre uttrykk. grep forstår tre forskjellige versjoner av vanlig uttrykkssyntaxbasert BRE, utvidet ERE og perl PRCE I GNU grep er det ingen forskjell i tilgjengelig funksjonalitet mellom grunnleggende og utvidede syntakser. I andre implementeringer er grunnleggende regulære uttrykk mindre kraftige. Følgende beskrivelse gjelder s til utvidede regulære uttrykksforskjeller for grunnleggende regulære uttrykk er oppsummert etterpå Perl-regulære uttrykk gir ekstra funksjonalitet. De grunnleggende byggeblokkene er de vanlige uttrykkene som samsvarer med et enkelt tegn. De fleste tegn, inkludert alle bokstaver og sifre, er regulære uttrykk som samsvarer med dem. Alle meta - karakter med spesiell betydning kan siteres ved å gå foran det med en tilbakeslag. Perioden samsvarer med en enkelt karakter. Karakterklasser og brakettuttrykk. En brakettuttrykk er en liste over tegn vedlagt og Den samsvarer med et hvilket som helst enkelt tegn i den listen hvis den første karakteren av listen er sporet, da den samsvarer med et hvilket som helst tegn som ikke er i listen. For eksempel matcher det vanlige uttrykket 0123456789 et hvilket som helst enkeltsiffer. Med et brakettuttrykk består et spekteruttrykk av to tegn separert av en bindestrek. Det matcher et hvilket som helst enkelt tegn som sorterer mellom de to tegnene, inkluderende, ved hjelp av lokalens s samlende sekvens e og tegnsett For eksempel, i standard C-locale, er annonsen tilsvarer abcd Many locales sortere tegn i ordliste rekkefølge, og i disse lokalene er annonsen vanligvis ikke ekvivalent med abcd den kan tilsvarer aBbCcDd for eksempel For å oppnå den tradisjonelle tolkningen av brakettuttrykk, kan du bruke C-stedet ved å sette LCALL-miljøvariabelen til verdien C. Finligvis er bestemte navngitte klasser av tegn forhåndsdefinert innenfor brakettuttrykk, som følger. Deres navn er selvforklarende, og de er alnum alpha cntrl siffergraf lavere utskrift punct space øvre og xdigit For eksempel betyr alnum tegnet klassen av tall og bokstaver i gjeldende landestandard I C locale og ASCII tegnsettkoding er dette det samme som 0-9A-Za-z. Merk at brakene i disse klassenavnene er en del av de symbolske navnene, og må inkluderes i tillegg til brakettene som avgrenser brakettuttrykket. De fleste meta-tegn mister sin spesielle betydning inne i braketten ex presser For å inkludere et bokstavlig sted, legg det først på listen Likeledes å inkludere et bokstavlig sted det hvor som helst, men først Til slutt å inkludere en bokstavlig - plasser den sist. Caret og dollarskiltet er meta-tegn som henholdsvis samsvarer med den tomme strengen ved Begynnelsen og slutten av en linje. Backslash karakteren og spesielle uttrykkene. Symbolene og henholdsvis samsvarer med den tomme strengen ved begynnelsen og slutten av et ord Symbolet b matcher den tomme strengen ved kanten av et ord, og B samsvarer med den tomme streng forutsatt at det ikke er i kanten av et ord Symbolet w er et synonym for alnum og W er et synonym for alnum. Et vanlig uttrykk kan etterfølges av en av flere repetisjon operatører.7 Linux Grep ELLER, Grep OG, Grep IKKE Operator Examples. Question Kan du forklare hvordan du bruker OR, OG og IKKE operatører i Unix grep-kommandoen med noen eksempler. Svar I grep har vi alternativer som tilsvarer OR og IKKE operatører. Det er ingen grep og opearator. Men du kan simulere og bruke mønstre e xamples nevnt nedenfor vil hjelpe deg å forstå hvordan du bruker OR, OG og IKKE i Linux grep command. The følgende fil brukes i følgende eksempler. Du visste allerede at grep er ekstremt kraftig basert på disse grep kommandoen examples. Grep OR Operator. Bruk en av følgende 4 metoder for grep ELLER jeg foretrekker metode nummer 3 nevnt nedenfor for grep OR operator.1 Grep ELLER Bruk. Hvis du bruker grep-kommandoen uten noe valg, må du bruke for å skille flere mønstre for eller tilstanden. For eksempel grep enten Tech eller Salg fra filen Uten bakstreken foran røret, vil følgende ikke fungere.2 Grep ELLER Bruk - E. grep - E alternativet er for utvidet regexp Hvis du bruker grep-kommandoen med - E alternativet, du trenger bare å bruke til å skille flere mønstre for eller tilstanden. For eksempel, grep enten Tech eller Salg fra filen Bare bruk for å skille flere OR mønstre.3 Grep ELLER Bruk egrep. egrep er akkurat det samme som grep - E Så bruk egrep uten noe valg og skille flere mønstre for tilstanden eller tilstanden. For eksempel, grep enten Tech eller Salg fra filen Bare bruk for å skille flere OR mønstre.4 Grep ELLER Ved å bruke grep - e. Using grep - e alternativet kan du bare sende en parameter Bruk flere - e alternativet i en enkelt kommando for å bruke flere mønstre for eller tilstanden. For eksempel, grep enten Tech eller Salg fra filen Bruk flere - e alternativet med grep for de flere ELLER mønstrene.5 Grep og bruk - E mønster1 mønster2. Det er ingen OG operatør i grep Men du kan simulere og bruke grep - E alternativet. Følgende eksempel vil grep alle linjene som inneholder både Dev og Tech i den i samme rekkefølge. Følgende eksempel vil grep alle linjene som inneholder både Manager og Salg i det i hvilken som helst rekkefølge. Notat Bruk av regulære uttrykk i grep er veldig kraftig hvis du vet hvordan du skal bruke den effektivt.6 Grep og bruk Multiple grep-kommandoen. Du kan også bruke flere grep-kommandoer skilt av rør for å simulere og scenario. Følgende Eksempelet vil grep alle linjene som inneholder både Manager og Salg i samme linje.7 Grep IKKE bruker grep - v. Using grep - v du kan simulere NOT-betingelsene - v alternativet er for inverter-match ie Den samsvarer med alle linjene bortsett fra gitt mønster. For eksempel, vis alle linjene unntatt de som inneholder søkeordet Sales. You kan også kombinere IKKE med andre operatører for å få noen kraftige kombinasjoner. For eksempel vil følgende vise enten Manager eller Developer bot ignorere Sales. kkkk 5. mars 2013, 11 35 pm. Thnx hjalp mye, men er det noen måte å grep og med to mønstre bare hvis de er i sammenhengende linjer dvs. mønster1 bla bla bla mønster2 blan blan blan pattern3 etc etc etc pattern1 blah blah blah pattern3 etc etc etc pattern2 blan blan blan. i Ønsker utgangen å være bare første og andre linjer der mønster 1 og mønster 2 er sammenhengende med hverandre. Nasdfi 14. april 2013, kl. 09.00. Fungerer også kombinert med andre kommandoer, for eksempel ps - A egrep - i gnome kde mate kanel for å vite om skrivebordsmiljøet du bruker GNOME, KDE, MATE eller Cinnamon. Hi kkkk grep - B 1 pattern2 file1 grep - A 1 pattern1 Dette vil skulle hvis jeg har det riktig filter først alle linjene med pattern2 pluss den forrige linjen Så rør for å filtrere for alt mønster1 med uansett følger det i dette tilfellet mønsteret2 Ellers kan du gå over til awk gawk Litt sent, men likevel Hilsen. Mike 14 mai 2013, 3 17 pm. Jeg har output fra du kommandoen du - ch du og bruker dette mønsteret grep - PG t du. To bare vise oppføringer med GB Jeg kan bruke grep - PT t du. To vise Terabytes Jeg prøver å se om jeg kan få begge med grep - PT t G t du. No-utgang Bruke grep - eP T t G t du. Giver tonn utdata, inkludert linjer som ikke bør matches. Shurax 24 juni 2013, 1 17 pm. Grep for unikt mønster over flere filer egrep pattern1 pattern2 file1 file2 sort - u. Grep for TB og GB kataloger i du output hvis du bruker bash du - h egrep T t G t. if bruk zsh Trykk Control-V og deretter TAB du - h egrep T G. Aale 10. juli 2013, 10 48 am. Jon Neville februar 10, 2016, 11 12 am. Hvis et mønster inneholder mellomrom, skal det mønsteret være i dobbelt anførselstegn inne i de enkelte sitatene som ikke fungerte for meg. Skal det andre mønsteret legges i to sitater, selv om det er et enkelt ord. H - r - E for eksempel sample2 sample2 for example. tot til 12 februar 2016, 11 28 am. egrep Manager Developer grep - v Sales. This er kombinasjonen av NOT og AND Hvordan lage en kombinasjon av IKKE og ELLER jeg e Jeg vil bare utelukke fra førstegangslisten bare personer som heter John, og som ikke er ledere Johns som er ledere og folk med andre navn, bør være i grepped list. Manuelle referansesider - ZGREP 1.grep, egrep, fgrep, zgrep , ordre, zfgrep, bzgrep, bzegrep, bzfgrep - utskriftslinjer som samsvarer med et mønster. grep søker de angitte inntastingsfiler s eller standardinngang hvis ingen filer er oppkalt, eller filnavnet - er gitt for linjer som inneholder en kamp med den oppgitte PATTERNEN By standard, grep skriver ut de tilsvarende linjene. I tillegg er to variantprogrammer egrep og fgrep tilgjengelige egrep er det samme som grep - E fgrep er det samme som grep - F zgrep er det samme som grep - Z ordre er det samme som grep - EZ zfgrep er det samme som grep - FZ. If de første byte av en fil indikerer at filen inneholder binær data, antar at filen er av typen TYPE Som standard er TYPE binær og grep normalt utgir enten en enlinjemelding som sier at en binær fil samsvarer eller ingen melding hvis det ikke er noen kamp hvis TYPE er uten - match grep forutsetter at en binær fil ikke samsvarer med dette, er ekvivalent med - I alternativet Hvis TYPE er tekstgrep behandler en binær fil som om det var tekst dette tilsvarer - a alternativet Warning grep - binær-filer tekst kan output binær søppel, som kan ha ekkel bivirkninger hvis utgangen er en terminal, og hvis terminaldriveren tolker noe av det som kommandoer. Omkring den tilsvarende strengen med markørfunnet i GREPCOLOR miljøvariabel når det kan være aldri, alltid eller automatisk. Undertrykk normal utgang i stedet skriv ut en telle med samsvarende linjer for hver inntastingsfil Med alternativet - v - inverter-match se nedenfor, teller ikke-tilsvarende linjer. Hvis en inngangsfil er en enhet, FIFO eller socket, bruk ACTION for å behandle den. Som standard leses ACTION som betyr at enheter leses akkurat som om de var vanlige filer Hvis ACTION er hoppet over enheter, blir det tydelig hoppet over. Hvis en inngangsfil er en katalog, bruk ACTION for å behandle den. Som standard leses ACTION som betyr at kataloger leses som om de var vanlige filer. Hvis ACTION er hoppe over kataloger er tydelig hoppet over Hvis ACTION er recurse grep leser alle filer under hver katalog, rekursivt dette tilsvarer - r alternativet. Undertrykke feilmeldinger om ikke-eksisterende eller ulæselige filer. Bærbarhetsnotat i motsetning til GNU grep var tradisjonell grep ikke i samsvar med POSIX 2 fordi tradisjonelle grep manglet a - q-alternativet og dens - opsjon oppført som GNU grep s - q-alternativet Shell-skript som er ment å være bærbare til tradisjonelle grep, bør unngå både - q og - s og skal omdirigere utdata til dev null instead. Treat fil es som binær Som standard, under MS-DOS og MS-Windows, grep gisser filtypen ved å se på innholdet i de første 32KB-lesene fra filen. Hvis grep bestemmer at filen er en tekstfil, stryker den CR-tegnene fra opprinnelige filinnhold for å gjøre regelmessige uttrykk med og fungere riktig Angi - U overrules dette gjetningen, og forårsaker at alle filer leses og sendes til den matchende mekanismen ordentlig hvis filen er en tekstfil med CR LF-par på slutten av hver linje, dette vil føre til at noen vanlige uttrykk mislykkes Dette alternativet har ingen effekt på andre plattformer enn MS-DOS og MS-Windows. Report Unix-style byte offsets Denne bryteren forårsaker grep å rapportere byteforskyvninger som om filen var Unix-stil tekstfil, dvs. med CR-tegn fjernet Dette vil gi resultater som er identiske med løpende grep på en Unix-maskin Dette alternativet har ingen effekt med mindre - b-alternativet også brukes, det har ingen effekt på andre plattformer enn MS-DOS og MS-Windows. Skriv ut versionsnummeret til grep til standard feil Dette versjonsnummeret skal inkluderes i alle feilrapporter, se nedenfor. Utgående synonym for - i. Utfør en nullbyte ASCII NUL-tegnet i stedet for tegnet som vanligvis følger et filnavn For eksempel gir grep - l - null en null byte etter hvert filnavn i stedet for den vanlige newline Dette alternativet gjør utdata entydig, selv i nærvær av filnavn som inneholder uvanlige tegn som newlines Dette alternativet kan brukes med kommandoer som finn - print0 perl -0 sorter - z og xargs -0 til behandle vilkårlig filnavn, selv de som inneholder newline characters. Decompress inngangsdata før du søker Dette alternativet er bare tilgjengelig hvis kompilert med zlib 3 library. Decompress bzip2 1 komprimerte inngangsdata før du søker. REGULLE UTTRYKKELSER. Et vanlig uttrykk er et mønster som beskriver et sett med strenger Regelmessige uttrykk er konstruert analogt med aritmetiske uttrykk, ved å bruke ulike operatører til å kombinere mindre uttrykk. grip forstår to forskjellige versjoner av vanlig uttrykssyntaks grunnleggende og utvidet I GNU grep er det ingen forskjell i tilgjengelig funksjonalitet ved hjelp av enten syntaks. I andre implementeringer er grunnleggende regulære uttrykk mindre kraftige. Følgende beskrivelse gjelder utvidede regulære uttrykksforskjeller for grunnleggende regulære uttrykk, oppsummeres etterpå. Den grunnleggende bygningen blokker er de vanlige uttrykkene som samsvarer med et enkelt tegn De fleste tegn, inkludert alle bokstaver og sifre, er regulære uttrykk som samsvarer med seg. Enhver metakarakter med spesiell betydning kan siteres ved å gå foran det med en tilbakeslag. Et brakettuttrykk er en liste over tegn vedlagt av og det samsvarer med et hvilket som helst enkelt tegn i den listen hvis den første karakteren i listen er karet da den samsvarer med et hvilket som helst tegn som ikke er i listen. For eksempel samsvarer det vanlige uttrykket 0123456789 med et hvilket som helst enkelt siffer. Med et brakettuttrykk består et spekteruttrykk av to tegn adskilt av en bindestrek Det samsvarer med noen enkelt ch aracter som sorterer mellom de to tegnene, inkludert, bruker lokalens s sammenstillingssekvens og tegnsett. For eksempel, i standard C-lokalet, er annonsen tilsvarer abcd Mange lokaliteter sorterer tegn i ordliste rekkefølge, og i disse lokalene er annonsen vanligvis ikke ekvivalent å abcd det kan tilsvarer aBbCcDd for eksempel For å oppnå den tradisjonelle tolkningen av brakettuttrykk, kan du bruke C-lokalen ved å sette LCALL-miljøvariabelen til verdien C. Finligvis er bestemte navngitte klasser av tegn forhåndsdefinert i brakettuttrykk, som følger deres navn er selvforklarende, og de er alnum alfa blank cntrl siffergrafikk lavere utskrift punct space øvre og xdigit For eksempel betyr alnum 0-9A-Za-z bortsett fra at sistnevnte skjema er avhengig av C-lokaliteten og ASCII-tegnkodingen, mens førstnevnte er uavhengig av lokal - og tegnsett. Merk at parentesene i disse klassenavnene er en del av de symbolske navnene, og må inkluderes i tillegg til e parentes avgrensning av brakettlisten De fleste meta tegn mister sin spesielle betydning på innsiden av lister For å inkludere et bokstavlig sted først i listen Likeledes, for å inkludere et bokstavlig sted det hvor som helst, men først Endelig, for å inkludere en bokstavlig - plasser den sist. Perioden samsvarer med noen enkelt tegn Symbolet w er et synonym for alnum og W er et synonym for alnum. The caret og dollartegnet er meta tegn som henholdsvis samsvarer med den tomme strengen ved begynnelsen og slutten av en linje. Symbolene og henholdsvis samsvarer med den tomme strengen ved Begynnelsen og slutten av et ord Symbolet b matcher den tomme strengen ved kanten av et ord, og B samsvarer med den tomme strengen hvis den ikke er i kanten av et ord. Et vanlig uttrykk kan følges av en av flere repetisjon operatører. Det foregående elementet er valgfritt og matchet høyest en gang. Foregående element blir matchet minst n ganger, men ikke mer enn m ganger. To vanlige uttrykk kan sammenføyes det resulterende regulære uttrykket samsvarer med eventuelle str ing formet ved å sammenkoble to substrings som henholdsvis samsvarer med de sammenkædede subekspresjonene. To vanlige uttrykk kan bli slått sammen av infix-operatøren. Det resulterende regulære uttrykket samsvarer med en hvilken som helst streng som matcher enten subexpression. Repetisjon har forrang over sammenkobling, som igjen har forrang over veksling. En hel subekspresjon kan være vedlagt i parentes for å tilsidesette disse prioritetsreglene. Tilbakekallingen n hvor n er et enkeltsiffer, samsvarer med substringen som tidligere er matchet med den n-parenteserte subekspresjonen av det regulære uttrykket. I grunnleggende regulære uttrykk må metakarakterene og miste deres spesielle betydning i stedet bruke de tilbakekledde versjoner og. Traditional egrep støttet ikke metakarakteren, og noen egrep-implementeringer støtter i stedet, så bærbare skript bør unngå i egrep-mønstre og bør brukes for å matche en bokstavelig. GNU egrep forsøker å støtte tradisjonell bruk ved å anta at det ikke er spesielt hvis det ville være starten på en inv alid intervallspesifikasjon For eksempel søker shellkommandoen egrep etter to tegnstrengen i stedet for å rapportere en syntaksfeil i det vanlige uttrykket POSIX 2 tillater denne oppførselen som en utvidelse, men bærbare skript bør unngå det. ENVIRONMENT VARIABLES. Greps oppførsel er påvirket av følgende miljøvariabler. En lokal LC foo er spesifisert ved å undersøke de tre miljøvariablene LCALL LC foo LANG i den rekkefølgen Den første av disse variablene som er angitt, spesifiserer lokalen For eksempel hvis LCALL ikke er satt, men LCMESSAGES er satt til ptBR, så brukes brasiliansk portugisisk til LCMESSAGES-lokaliteten. C-locale brukes hvis ingen av disse miljøvariablene er angitt, eller hvis lokalkatalogen ikke er installert, eller hvis grep ikke ble kompilert med nasjonale språkstøtte NLS. Denne variabelen angir standard Alternativer som skal plasseres foran eksplisitte alternativer Hvis for eksempel GREPOPTIONS er - binære filer uten match - kataloger hopper grep opp som om de to optiene ons - binærfiler uten kamp og - katalogoverskrift hadde blitt spesifisert før noen eksplisitte alternativer Alternativspesifikasjoner er adskilt av hvitt plass En tilbakeslag slipper ut neste tegn, slik at det kan brukes til å spesifisere et alternativ som inneholder hvitt plass eller en tilbakeslag. Her er en eksempelkommando som påkaller GNU grep. Dette lister alle linjer i filmenyen h og hoved c som inneholder strengen hei etterfulgt av strengverdenen dette er fordi det matcher null eller flere tegn i en linje. Se Ordinære uttrykk. grep å ignorere saken og forårsaker at den samsvarer med linjen Hei, verden, som den ikke ellers ville samsvare Se Invoking for flere detaljer om hvordan å påkalle grep. Here er noen vanlige spørsmål og svar om grep-bruk. Hvordan kan jeg bare oppgi navnene av matchende files. lists navnene på alle C-filene i den nåværende katalogen hvis innhold nevner hoved. Hvordan søker jeg kataloger rekursivt. søk for hei i alle filer under hjemme-gigi-katalogen For mer contr ol over hvilke filer som søkte, bruk finn grep og xargs For eksempel, søker følgende kommando bare C-filer. Dette er forskjellig fra kommandoen. som bare ser etter hei i alle filer i gjeldende katalog hvis navn slutter i c Finn kommandolinjen ovenfor er mer lik kommandoen. Hva om et mønster har en leading. searches for alle linjer som matcher - se her - Uten - e grep ville forsøke å analysere - se her - som en liste over alternativer. Anta at jeg vil å søke etter et helt ord, ikke en del av et ord. søker kun for tilfeller av hei som er hele ord, det stemmer ikke overens med Othello For mer kontroll, bruk og til å matche start og slutt på ord For eksempel søker bare ord slutter på hallo, så det samsvarer med ordet Othello. Hvordan lager jeg kontekst rundt de matchende linjene. skriver to linjer av kontekst rundt hver matchende linje. Hvordan tvinger jeg grep til å skrive ut navnet på filen. Alternativt, bruk - H som er en GNU-utvidelse. Hvorfor bruker folk merkelige regulære uttrykk på PS-utdata. Hvis mønsteret hadde blitt skrevet uten firkantede parenteser, det ville ha likt ikke bare PS-utgangslinjen for cron, men også ps-utgangslinjen for grep. Merk at ps på noen plattformer begrenser utgangen til skjermgrepets bredde, ikke har noen grense på lengden på en linje, bortsett fra det tilgjengelige minnet. Hvorfor gir grep-rapporten binærfilen. Hvis grep oppført alle matchende linjer fra en binær fil, ville det trolig generere utgang som ikke er nyttig, og det kan til og med kaste opp skjermen din Så undertrykker GNU grep utdata fra filer som ser ut til å være binære filer. For å tvinge GNU grep til å sende ut linjer selv fra filer som ser ut til å være binære, bruk tekst-alternativet - a eller - binære filer. alternativet - I eller - binær-filer uten match. Hvorfor tar ikke grep - vv ut ikke-matchende filnavn. grep - lv viser navnene på alle filene som inneholder en eller flere linjer som ikke samsvarer med For å liste navnene på alle filene som ikke inneholder matchende linjer, bruk - L eller --Filter-uten-match-alternativ. Jeg kan gjøre ELLER med, men hva med AND. finds alle linjer som inneholder både paul og franc, ois. Hvorfor passer det tomme mønsteret hver inngangslinje. Grep-kommandoen søker etter linjer som inneholder Strikker som samsvarer med et mønster Hver linje inneholder den tomme strengen, slik at et tomt mønster gir grep å finne en kamp på hver linje. Det er ikke det eneste slike mønsteret,, og mange andre mønstre som forårsaker grep å matche hver linje. For å matche tomme linjer , bruk mønsteret For å matche blanke linjer, bruk mønsterblanket For å matche ingen linjer i det hele tatt, bruk kommandoen grep - f dev null. Hvordan kan jeg søke i både standardinngang og i filer. Bruk det spesielle filnavnet. Hvordan uttrykke palindromer i et vanlig uttrykk. Det kan gjøres ved hjelp av tilbakekallinger, for eksempel kan et palindrom på 4 tegn skrives med en BRE. Det samsvarer med ordet radar eller civic. Guglielmo Bondioni foreslo en enkelt RE som finner alle palindromer opp til 19 tegn lang med 9 underuttrykk og 9 tilbakekallinger. Merk dette er gjort ved å bruke GNU ERE-utvidelser, kan det ikke være bærbart for andre implementeringer av grep. Hvorfor er denne tilbakekallingen feil. Dette gir ingen utdata, fordi den første alternative a 1 ikke samsvarer, da det ikke er noe i inngangen, så den 1 i den andre alternative har ingenting å referere til, noe som betyr at den aldri vil matche noe. Den andre alternativet i dette eksemplet kan bare matche om den første alternativeren har passet til å gjøre den andre overflødig. Hvordan kan jeg matche over linjer. Standard grep kan ikke gjøre dette, da det er fundamentalt linjebasert. Derfor bruker bare romkarakterklassen ikke nye linjer som du kan forvente. Med GNU grep-alternativet - z - null-data, er hver inngangs - og utgangslinje null - terminert se Andre alternativer Således kan du matche newlines i inngangen, men vanligvis hvis det er en kamp, er hele inngangen utdata, så denne bruken blir ofte kombinert med utgangsundertrykkingsalternativer som - qe g. If dette ikke er tilstrekkelig, Du kan forandre inngangen før givi ng det å grep eller slå til awk sed perl eller mange andre verktøy som er utformet for å operere på tvers av linjer. Hva grep fgrep og egrep står for. Navnet grep kommer fra måten linjearbeidingen ble gjort på Unix For eksempel bruker ed Følgende syntaks for å skrive ut en liste over matchende linjer på skjermen. Feil står for Fast grep egrep står for Extended grep.
No comments:
Post a Comment