egrep

Från Wiki.linux.se
Version från den 26 augusti 2024 kl. 07.08 av Admin (diskussion | bidrag) (→‎Referenserade av)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

Namn

grep, egrep, fgrep - skriver ut rader som matchar ett mönster

Synopsis

grep [ALTERNATIV] MÖNSTER [FIL...]
grep [ALTERNATIV] [-e MÖNSTER | -f FIL] [FIL...]

Beskrivning

grep söker i de angivna inmatningsfilerna (eller standardinmatning om inga filer är angivna, eller om ett enda bindestreck (-) ges som filnamn) efter rader som innehåller en matchning mot det angivna MÖNSTER. Som standard skriver grep ut de matchande raderna.

Utöver detta finns två varianter av programmet tillgängliga, egrep och fgrep. egrep är samma som grep -E. fgrep är samma som grep -F. Direkt anrop som antingen egrep eller fgrep avråds, men tillhandahålls för att tillåta historiska applikationer som är beroende av dem att köras omodifierade.

Alternativ

Generisk Programinformation

  • --help
 Skriv ut ett användningsmeddelande som kortfattat sammanfattar dessa kommandoradsalternativ och adressen för felrapportering, och avsluta sedan.
  • -V, --version
 Skriv ut versionsnumret för grep till standardutmatningsströmmen. Detta versionsnummer bör inkluderas i alla felrapporter (se nedan).

Matchervalsalternativ

  • -E, --extended-regexp
 Tolka MÖNSTER som ett utökat reguljärt uttryck (ERE, se nedan). (-E specificeras av POSIX.)
  • -F, --fixed-strings
 Tolka MÖNSTER som en lista över fasta strängar, separerade med nya rader, var och en av dessa strängar ska matchas. (-F specificeras av POSIX.)
  • -G, --basic-regexp
 Tolka MÖNSTER som ett grundläggande reguljärt uttryck (BRE, se nedan). Detta är standardinställningen.
  • -P, --perl-regexp
 Tolka MÖNSTER som ett Perl-reguljärt uttryck. Detta är mycket experimentellt och grep -P kan varna för ej implementerade funktioner.

Matchningskontroll

  • -e MÖNSTER, --regexp=MÖNSTER
 Använd MÖNSTER som mönster. Detta kan användas för att specificera flera sökmönster eller för att skydda ett mönster som börjar med ett bindestreck (-). (-e specificeras av POSIX.)
  • -f FIL, --file=FIL
 Hämta mönster från FIL, ett per rad. En tom fil innehåller inga mönster och matchar därför ingenting. (-f specificeras av POSIX.)
  • -i, --ignore-case
 Ignorera skiftlägesdistinktioner i både MÖNSTER och inmatningsfilerna. (-i specificeras av POSIX.)
  • -v, --invert-match
 Invertera matchningens känsla, för att välja icke-matchande rader. (-v specificeras av POSIX.)
  • -w, --word-regexp
 Välj endast de rader som innehåller matchningar som utgör hela ord. Testet är att den matchande understrängen antingen måste vara i början av raden, eller föregås av ett icke-ordkonstituerande tecken. På samma sätt måste den antingen vara i slutet av raden eller följas av ett icke-ordkonstituerande tecken. Ord-konstituerande tecken är bokstäver, siffror och understreck.
  • -x, --line-regexp
 Välj endast de matchningar som exakt matchar hela raden. (-x specificeras av POSIX.)
  • -y
 Föråldrad synonym för -i.

Allmän utmatningskontroll

  • -c, --count
 Undertryck normal utmatning; skriv istället ut ett antal matchande rader för varje inmatningsfil. Med alternativet -v, --invert-match (se nedan) räknar du icke-matchande rader. (-c specificeras av POSIX.)
  • --color[=WHEN], --colour[=WHEN]
 Omge de matchade (icke-tomma) strängarna, matchande rader, kontextrader, filnamn, radnummer, byteoffset och separatorer (för fält och grupper av kontextrader) med escape-sekvenser för att visa dem i färg på terminalen. Färgerna definieras av miljövariabeln GREP_COLORS. Den föråldrade miljövariabeln GREP_COLOR stöds fortfarande, men dess inställning har inte prioritet. WHEN är aldrig, alltid eller auto.
  • -L, --files-without-match
 Undertryck normal utmatning; skriv istället ut namnet på varje inmatningsfil från vilken ingen utmatning normalt skulle ha skrivits ut. Skanningen kommer att stoppas vid den första matchningen.
  • -l, --files-with-matches
 Undertryck normal utmatning; skriv istället ut namnet på varje inmatningsfil från vilken utmatning normalt skulle ha skrivits ut. Skanningen kommer att stoppas vid den första matchningen. (-l specificeras av POSIX.)
  • -m NUM, --max-count=NUM
 Sluta läsa en fil efter NUM matchande rader. Om inmatningen är standardinmatning från en vanlig fil och NUM matchande rader skrivs ut, säkerställer grep att standardinmatningen positioneras precis efter den sista matchande raden innan den avslutas, oavsett om det finns efterföljande kontextrader eller inte. Detta gör det möjligt för ett anropsprogram att återuppta en sökning. När grep stoppar efter NUM matchande rader skriver det ut eventuella efterföljande kontextrader. När alternativet -c eller --count också används, skriver grep inte ut ett antal som är större än NUM. När alternativet -v eller --invert-match också används, slutar grep efter att ha skrivit ut NUM icke-matchande rader.
  • -o, --only-matching
 Skriv endast ut de matchande (icke-tomma) delarna av en matchande rad, med varje sådan del på en separat utmatningsrad.
  • -q, --quiet, --silent
 Tyst; skriv inget till standardutmatning. Avsluta omedelbart med status noll om någon matchning hittas, även om ett fel upptäcks. Se även alternativet -s eller --no-messages. (-q specificeras av POSIX.)
  • -s, --no-messages
 Undertryck felmeddelanden om icke-existerande eller oläsbara filer. Portabilitetsanmärkning: till skillnad från GNU grep, följde inte 7th Edition Unix grep POSIX eftersom det saknade -q och dess -s-alternativ beter sig som GNU grep:s -q-alternativ. USG-stil grep saknade också -q men dess -s-alternativ beter sig som GNU grep. Portabla skal-skript bör undvika både -q och -s och istället omdirigera standard- och felutmatning till `/dev/null`. (-s specificeras av POSIX.)

Utmatningslinjeprefixkontroll

  • -b, --byte-offset
 Skriv ut 0-baserad byteoffset i inmatningsfilen före varje rad med utmatning. Om -o (--only-matching) anges, skriv ut offseten för den matchande delen själv.
  • -H, --with-filename
 Skriv ut filnamnet för varje matchning. Detta är standard när det finns mer än en fil att söka i.
  • -h, --no-filename
 Undertryck förfixningen av filnamn vid utmatning. Detta är standard när det endast finns en fil (eller endast standardinmatning) att söka i.
  • --label=LABEL
 Visa inmatning som faktiskt kommer från standardinmatning som inmatning som kommer från filen LABEL. Detta är särskilt användbart när man implementerar verktyg som zgrep, till exempel `gzip -cd foo.gz | grep --label=foo -H something`. Se även alternativet -H.
  • -n, --line-number
 Prefixera varje rad med utmatning med 1-baserat radnummer inom dess inmatningsfil. (-n specificeras av POSIX.)
  • -T, --initial-tab
 Se till att den första tecknet av det faktiska radinnehållet ligger på en tabbstopp, så att tabblistan ser normal ut. Detta är användbart med alternativ som prefixar deras utmatning till det faktiska innehållet: -H, -n och -b. För att förbättra sannolikheten att rader från en enda fil alla startar vid samma kolumn, orsakar detta också att radnumret och byteoffseten (om närvarande) skrivs ut i ett minimalt fältbredd.
  • -u, --unix-byte-offsets
 Rapportera byteoffset i Unix-stil. Denna omkopplare får grep att rapportera byteoffset som om filen vore en Unix-stil textfil, dvs med CR-tecken borttagna. Detta kommer att ge resultat som är identiska med att köra grep på en Unix-maskin. Detta alternativ har ingen effekt om inte -b-alternativet också används; det har ingen effekt på plattformar annat än MS-DOS och MS-Windows.
  • -Z, --null
 Skriv ut en noll byte (ASCII NUL-tecknet) istället för det tecken som normalt följer ett filnamn. Till exempel, grep -lZ skriver ut en noll byte efter varje filnamn istället för den vanliga nya raden. Detta alternativ gör utmatningen otvetydig, även i närvaro av filnamn som innehåller ovanliga tecken som nya rader. Detta alternativ kan användas med kommandon som find -print0, perl -0, sort -z och xargs -0 för att bearbeta godtyckliga filnamn, även de som innehåller ny linjetecken.

Kontextradjkontroll

  • -A NUM, --after-context=NUM
 Skriv ut NUM rader av efterföljande kontext efter matchande rader. Placerar en linje som innehåller en gruppseparator (--) mellan sammanhängande grupper av matchningar. Med alternativet -o eller --only-matching har detta ingen effekt och en varning ges.
  • -B NUM, --before-context=NUM
 Skriv ut NUM rader av ledande kontext före matchande rader. Placerar en linje som innehåller en gruppseparator (--) mellan sammanhängande grupper av matchningar. Med alternativet -o eller --only-matching har detta ingen effekt och en varning ges.
  • -C NUM, -NUM, --context=NUM
 Skriv ut NUM rader av utmatningskontext. Placerar en linje som innehåller en gruppseparator (--) mellan sammanhängande grupper av matchningar. Med alternativet -o eller --only-matching har detta ingen effekt och en varning ges.

Fil- och katalogval

  • -a, --text
 Bearbeta en binär fil som om den vore text; detta är likvärdigt med alternativet --binary-files=text.
  • --binary-files=TYPE
 Om de första få byte av en fil indikerar att filen innehåller binära data, anta att filen är av typen TYPE. Som standard är TYPE binär och grep skriver normalt ut antingen ett enradigt meddelande som säger att en binär fil matchar, eller inget meddelande om det inte finns någon matchning. Om TYPE är utan-matchning, antar grep att en binär fil inte matchar; detta är likvärdigt med alternativet -I. Om TYPE är text, bearbetar grep en binär fil som om den vore text; detta är likvärdigt med alternativet -a. Varning: grep --binary-files=text kan skriva ut binära skräptecken, vilket kan få otrevliga bieffekter om utmatningen är en terminal och om terminaldrivrutinen tolkar några av dem som kommandon.
  • -D ACTION, --devices=ACTION
 Om en inmatningsfil är en enhet, FIFO eller socket, använd ACTION för att bearbeta den. Som standard är ACTION läsning, vilket innebär att enheter läses precis som om de vore vanliga filer. Om ACTION är hoppa, hoppas enheterna över tyst.
  • -d ACTION, --directories=ACTION
 Om en inmatningsfil är en katalog, använd ACTION för att bearbeta den. Som standard är ACTION läsning, vilket innebär att kataloger läses precis som om de vore vanliga filer. Om ACTION är hoppa, hoppas katalogerna över tyst. Om ACTION är rekursiv, läser grep alla filer under varje katalog, rekursivt; detta är likvärdigt med alternativet -r.
  • --exclude=GLOB
 Hoppa över filer vars grundnamn matchar GLOB (med hjälp av wildcard-matchning). Ett filnamnsglob kan använda *, ?, och [...] som jokertecken, och \ för att bokstavligen citera ett jokertecken eller bakstreckstecken.
  • --exclude-from=FIL
 Hoppa över filer vars grundnamn matchar någon av de filnamnsglobar som läses från FIL (med hjälp av wildcard-matchning som beskrivs under --exclude).
  • --exclude-dir=DIR
 Exkludera kataloger som matchar mönstret DIR från rekursiva sökningar.
  • -I
 Bearbeta en binär fil som om den inte innehöll matchande data; detta är likvärdigt med alternativet --binary-files=without-match.
  • --include=GLOB
 Sök endast filer vars grundnamn matchar GLOB (med hjälp av wildcard-matchning som beskrivs under --exclude).
  • -R, -r, --recursive
 Läs alla filer under varje katalog, rekursivt; detta är likvärdigt med alternativet -d recurse.

Övriga alternativ

  • --line-buffered
 Använd linjebuffering på utmatning. Detta kan orsaka en prestationsförsämring.
  • --mmap
 Om möjligt, använd systemanropet mmap(2) för att läsa inmatning, istället för standardanropet read(2). I vissa situationer ger --mmap bättre prestanda. Dock kan --mmap orsaka odefinierat beteende (inklusive kraschdump) om en inmatningsfil krymper medan grep fungerar, eller om ett I/O-fel inträffar.
  • -U, --binary
 Behandla filen/-erna som binära. Som standard, under MS-DOS och MS-Windows, försöker grep avgöra filtypen genom att titta på innehållet i de första 32KB som läses från filen. Om grep avgör att filen är en textfil, tar den bort CR-tecken från originalfilens innehåll (för att göra reguljära uttryck med ^ och $ fungerar korrekt). Om du anger -U åsidosätts denna gissning, vilket orsakar att alla filer läses och skickas till matchningsmekanismen oförändrade; om filen är en textfil med CR/LF-par i slutet av varje rad kommer detta att orsaka att vissa reguljära uttryck misslyckas. Detta alternativ har ingen effekt på plattformar annat än MS-DOS och MS-Windows.
  • -z, --null-data
 Behandla inmatningen som en uppsättning rader, var och en avslutad med en noll byte (ASCII NUL-tecknet) istället för ett nytt radbyte. Liksom alternativet -Z eller --null kan detta alternativ användas med kommandon som sort -z för att bearbeta godtyckliga filnamn.

Reguljära uttryck

Ett reguljärt uttryck är ett mönster som beskriver en uppsättning strängar. Reguljära uttryck konstrueras analogt till aritmetiska uttryck, genom att använda olika operatorer för att kombinera mindre uttryck.

grep förstår tre olika versioner av reguljär uttryckssyntax: "grundläggande", "utökad" och "perl". I GNU grep finns ingen skillnad i tillgänglig funktionalitet mellan grundläggande och utökade syntaxer. I andra implementeringar är grundläggande reguljära uttryck mindre kraftfulla. Följande beskrivning gäller för utökade reguljära uttryck; skillnader för grundläggande reguljära uttryck sammanfattas därefter. Perl reguljära uttryck ger ytterligare funktionalitet och dokumenteras i pcresyntax(3) och pcrepattern(3), men kanske inte är tillgängliga på varje system.

De grundläggande byggstenarna är de reguljära uttryck som matchar ett enda tecken. De flesta tecken, inklusive alla bokstäver och siffror, är reguljära uttryck som matchar sig själva. Varje metatecken med särskild betydelse kan citeras genom att föregå det med ett bakstreck.

Teckenklasser och hakuttryck

Ett hakuttryck är en lista över tecken omsluten av [ och ]. Det matchar alla tecken i den listan; om det första tecknet i listan är ett caret ^ matchar det alla tecken som inte finns i listan. Till exempel, det reguljära uttrycket [0123456789] matchar alla siffror.

Inom ett hakuttryck består ett intervalluttryck av två tecken separerade med ett bindestreck. Det matchar alla tecken som sorteras mellan de två tecknen, inklusive de två tecknen, med hjälp av lokalsorteringssekvensen och teckensetet. Till exempel, i standard C-lokalen, är [a-d] ekvivalent med [abcd]. Många lokaler sorterar tecken i ordboksordning, och i dessa lokaler är [a-d] vanligtvis inte ekvivalent med [abcd]; det kan vara ekvivalent med [aBbCcDd], till exempel. För att få den traditionella tolkningen av hakuttryck kan du använda C-lokalen genom att ställa in miljövariabeln LC_ALL till värdet C.

Slutligen är vissa namngivna teckenklasser fördefinierade inom hakuttryck, enligt följande. Deras namn är självförklarande och de är [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] och [:xdigit:]. Till exempel betyder alnum: [0-9A-Za-z], förutom att den senare formen beror på C-lokalen och ASCII-teckenkodningen, medan den förra är oberoende av lokal och teckenuppsättning. (Observera att hakorna i dessa klassnamn är en del av de symboliska namnen och måste inkluderas förutom hakorna som avgränsar hakuttrycket.) De flesta metatecken förlorar sin särskilda betydelse inom hakuttryck. För att inkludera ett bokstavligt ] placera det först i listan. På samma sätt, för att inkludera ett bokstavligt ^ placera det var som helst utom först. Slutligen, för att inkludera ett bokstavligt - placera det sist.

Ankaring

Caret ^ och dollartecken $ är metatecken som respektive matchar den tomma strängen i början och slutet av en rad.

Bakstreckstecken och särskilda uttryck

Symbolerna \< och \> matchar respektive den tomma strängen i början och slutet av ett ord. Symbolen \b matchar den tomma strängen vid kanten av ett ord, och \B matchar den tomma strängen förutsatt att den inte är vid kanten av ett ord. Symbolen \w är en synonym för alnum: och \W är en synonym för [^[:alnum:]].

Upprepning

Ett reguljärt uttryck kan följas av en av flera upprepningsoperatorer:

  • ?
 Det föregående objektet är valfritt och matchas högst en gång.
  • *
 Det föregående objektet matchas noll eller flera gånger.
  • +
 Det föregående objektet matchas en eller flera gånger.
  • {n}
 Det föregående objektet matchas exakt n gånger.
  • {n,}
 Det föregående objektet matchas n eller flera gånger.
  • {,m}
 Det föregående objektet matchas högst m gånger.
  • {n,m}
 Det föregående objektet matchas minst n gånger, men inte mer än m gånger.

Konkatenation

Två reguljära uttryck kan konkateneras; det resulterande reguljära uttrycket matchar alla strängar som bildas genom att konkatenera två understrängar som respektive matchar de konkatenerade uttrycken.

Alternation

Två reguljära uttryck kan sammanfogas med infixoperatorn |; det resulterande reguljära uttrycket matchar alla strängar som matchar antingen av de alternativa uttrycken.

Prioritet

Upprepning har företräde framför konkatenation, som i sin tur har företräde framför alternering. Ett helt uttryck kan omslutas i parenteser för att åsidosätta dessa prioriteringsregler och bilda ett underuttryck.

Tillbaka-referenser och underuttryck

Tillbaka-referensen \n, där n är en enda siffra, matchar den understräng som tidigare matchades av det n:te parenteserade underuttrycket i det reguljära uttrycket.

Grundläggande kontra utökade reguljära uttryck

I grundläggande reguljära uttryck förlorar metatecknen ?, +, {, |, (, och ) sin särskilda betydelse; istället används de bakslagna versionerna \?, \+, \{, \|, \(, och \).

Traditionella egrep stödde inte { metatecknet, och vissa egrep-implementationer stödjer \{ istället, så portabla skript bör undvika { i grep -E mönster och istället använda [{] för att matcha ett bokstavligt {.

GNU grep -E försöker stödja traditionell användning genom att anta att { inte är särskilt om det skulle vara början på en ogiltig intervallspecifikation. Till exempel söker kommandot grep -E '{1' efter den tvåteckenssträngen {1 istället för att rapportera ett syntaxfel i det reguljära uttrycket. POSIX.2 tillåter detta beteende som en utökning, men portabla skript bör undvika det.

Miljövariabler

Greps beteende påverkas av följande miljövariabler.

Lokal för kategorin LC_foo specificeras genom att undersöka de tre miljövariablerna LC_ALL, LC_foo, LANG, i den ordningen. Den första av dessa variabler som är inställd specificerar lokalen. Till exempel, om LC_ALL inte är inställt, men LC_MESSAGES är inställt på pt_BR, används den brasilianska portugisiska lokalen för kategorin LC_MESSAGES. C-lokalen används om ingen av dessa miljövariabler är inställda, om lokalens katalog inte är installerad, eller om grep inte har kompilerats med nationellt språkstöd (NLS).

GREP_OPTIONS

Denna variabel specificerar standardalternativ att placera framför alla uttryckliga alternativ. Till exempel, om GREP_OPTIONS är '--binary-files=without-match --directories=skip', beter sig grep som om de två alternativen --binary-files=without-match och --directories=skip hade specificerats före alla uttryckliga alternativ. Alternativspecifikationer separeras av mellanslag. Ett bakstreck undviker nästa tecken, så det kan användas för att specificera ett alternativ som innehåller mellanslag eller ett bakstreck.

GREP_COLOR

Denna variabel specificerar färgen som används för att markera matchad (icke-tom) text. Det är föråldrat till förmån för GREP_COLORS, men stöds fortfarande. De mt-, ms- och mc-kapaciteter som GREP_COLORS har prioritet över det. Det kan endast specificera färgen som används för att markera den matchande icke-tomma texten i en matchande rad (en vald rad när kommandoradsalternativet -v utelämnas, eller en kontextrad när -v är specificerat). Standardinställningen är 01;31, vilket betyder en fet röd förgrundstext på terminalens standardbakgrund.

GREP_COLORS

Specificerar färgerna och andra attribut som används för att markera olika delar av utmatningen. Dess värde är en kolonavgränsad lista över kapaciteter som standardinställningen är ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 med rv och ne booleanska kapaciteter utelämnade (dvs falska). Stödde kapaciteter är som följer:

  • sl=
 SGR-understräng för hela valda rader (dvs matchande rader när kommandoradsalternativet -v utelämnas, eller icke-matchande rader när -v är specificerat). Om dock den booleanska rv-kapaciteten och kommandoradsalternativet -v båda är specificerade, gäller det kontextmatchande rader istället. Standardinställningen är tom (dvs terminalens standardfärgpar).
  • cx=
 SGR-understräng för hela kontextrader (dvs icke-matchande rader när kommandoradsalternativet -v utelämnas, eller matchande rader när -v är specificerat). Om dock den booleanska rv-kapaciteten och kommandoradsalternativet -v båda är specificerade, gäller det valda icke-matchande rader istället. Standardinställningen är tom (dvs terminalens standardfärgpar).
  • rv
 Booleanskt värde som omvänt (byter) betydelsen av sl= och cx= kapaciteter när kommandoradsalternativet -v är specificerat. Standardinställningen är falsk (dvs kapaciteten utelämnas).
  • mt=01;31
 SGR-understräng för matchande icke-tom text i alla matchande rader (dvs en vald rad när kommandoradsalternativet -v utelämnas, eller en kontextrad när -v är specificerat). Att ställa in detta är ekvivalent med att ställa in både ms= och mc= samtidigt till samma värde. Standardinställningen är fet röd textförgrund över den aktuella radens bakgrund.
  • ms=01;31
 SGR-understräng för matchande icke-tom text i en vald rad. (Detta används endast när kommandoradsalternativet -v utelämnas.) Effekten av sl= (eller cx= om rv) kapaciteten förblir aktiv när detta aktiveras. Standardinställningen är fet röd textförgrund över den aktuella radens bakgrund.
  • mc=01;31
 SGR-understräng för matchande icke-tom text i en kontextrad. (Detta används endast när kommandoradsalternativet -v är specificerat.) Effekten av cx= (eller sl= om rv) kapaciteten förblir aktiv när detta aktiveras. Standardinställningen är fet röd textförgrund över den aktuella radens bakgrund.
  • fn=35
 SGR-understräng för filnamn som prefixar innehållsraden. Standardinställningen är magenta textförgrund över terminalens standardbakgrund.
  • ln=32
 SGR-understräng för radnummer som prefixar innehållsraden. Standardinställningen är grön textförgrund över terminalens standardbakgrund.
  • bn=32
 SGR-understräng för byteoffset som prefixar innehållsraden. Standardinställningen är grön textförgrund över terminalens standardbakgrund.
  • se=36
 SGR-understräng för separatorer som sätts in mellan valda radfält (:), mellan kontextradfält (-), och mellan grupper av angränsande rader när icke-noll kontext är specificerat (--). Standardinställningen är cyan textförgrund över terminalens standardbakgrund.
  • ne
 Booleanskt värde som förhindrar radering till slutet av raden med Erase in Line (EL) till höger (\33[K) varje gång en färgad post slutar. Detta behövs på terminaler där EL inte stöds. Det är annars användbart på terminaler där back_color_erase (bce) booleansk terminfo-kapacitet inte gäller, när de valda markeringsfärgerna inte påverkar bakgrunden, eller när EL är för långsam eller orsakar för mycket flimmer. Standardinställningen är falsk (dvs kapaciteten utelämnas).

Observera att booleanska kapaciteter inte har någon =... del. De utelämnas (dvs falska) som standard och blir sanna när de specificeras.

Se avsnittet Select Graphic Rendition (SGR) i dokumentationen för den textterminal som används för tillåtna värden och deras betydelse som teckenattribut. Dessa understrängsvärden är heltal i decimal representation och kan sammanfogas med semikolon. grep tar hand om att sammanställa resultatet till en fullständig SGR-sekvens (\33[...m). Vanliga värden att sammanfoga inkluderar 1 för fet, 4 för understruken, 5 för blinkning, 7 för omvänd, 39 för standardfärg för förgrund, 30 till 37 för förgrundsfärger, 90 till 97 för 16-färgsläge förgrundsfärger, 38;5;0 till 38;5;255 för 88-färg och 256-färgslägen för förgrundsfärger, 49 för standardbakgrundsfärg, 40 till 47 för bakgrundsfärger, 100 till 107 för 16-färgsläge bakgrundsfärger och 48;5;0 till 48;5;255 för 88-färg och 256-färgslägen för bakgrundsfärger.

LC_ALL, LC_COLLATE, LANG

Dessa variabler specificerar lokalen för kategorin LC_COLLATE, som bestämmer kollationssekvensen som används för att tolka intervalluttryck som [a-z].

LC_ALL, LC_CTYPE, LANG

Dessa variabler specificerar lokalen för kategorin LC_CTYPE, som bestämmer typen av tecken, t.ex. vilka tecken som är blanktecken.

LC_ALL, LC_MESSAGES, LANG

Dessa variabler specificerar lokalen för kategorin LC_MESSAGES, som bestämmer språket som grep använder för meddelanden. Standard C-lokalen använder amerikansk engelska meddelanden.

POSIXLY_CORRECT

Om inställt, beter sig grep som POSIX.2 kräver; annars beter sig grep mer som andra GNU-program. POSIX.2 kräver att alternativ som följer filnamn måste behandlas som filnamn; som standard permuteras sådana alternativ till början av operandlistan och behandlas som alternativ. Dessutom kräver POSIX.2 att oigenkända alternativ diagnostiseras som "olagliga", men eftersom de egentligen inte är mot lagen är standardinställningen att diagnostisera dem som "ogiltiga". POSIXLY_CORRECT inaktiverar också _N_GNU_nonoption_argv_flags_, som beskrivs nedan.

_N_GNU_nonoption_argv_flags_

(Här är N greps numeriska process-ID.) Om den ith tecknet i denna miljövariabels värde är 1, ska den ith operand av grep inte betraktas som ett alternativ, även om den verkar vara ett. Ett skal kan sätta denna variabel i miljön för varje kommando det kör, och specificera vilka operander som är resultatet av filnamns jokerteckenexpansion och därför inte bör behandlas som alternativ. Detta beteende är endast tillgängligt med GNU C-biblioteket och endast när POSIXLY_CORRECT inte är inställt.

Avslutsstatus

Normalt är avslutningsstatus 0 om valda rader hittas och 1 annars. Men avslutningsstatus är 2 om ett fel uppstod, om inte alternativet -q eller --quiet eller --silent används och en vald rad hittas. Observera dock att POSIX endast kräver, för program som grep, cmp och diff, att avslutningsstatus vid fel är större än 1; det är därför tillrådligt, för att säkerställa portabilitet, att använda logik som testar för detta allmänna villkor istället för strikt likhet med 2.

Upphovsrätt

Copyright 1998-2000, 2002, 2005-2010 Free Software Foundation, Inc.

Detta är fri programvara; se källkoden för kopieringsvillkor. Det finns INGEN garanti; inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR ETT VISST ÄNDAMÅL.

Felrapporter

Rapportera fel

Skicka felrapporter till <bug-grep@gnu.org>, en e-postlista vars webbsida är <http://lists.gnu.org/mailman/listinfo/bug-grep>. greps Savannah felspårning finns på <http://savannah.gnu.org/bugs/?group=grep>.

Kända fel

Stora repetitionsantal i konstruktionen {n,m} kan få grep att använda mycket minne. Dessutom kräver vissa andra obskyra reguljära uttryck exponentiell tid och utrymme, och kan få grep att få slut på minne.

Tillbaka-referenser är mycket långsamma och kan kräva exponentiell tid.

Se även

Vanliga manualer

awk, cmp, diff, find, gzip, perl, sed, sort, xargs, zgrep, mmap, read, pcre, pcresyntax, pcrepattern, terminfo, glob, regex.

POSIX Programmer's Manual Page

grep(1p).

TeXinfo-dokumentation

Den fullständiga dokumentationen för grep underhålls som en TeXinfo-manual. Om info och grep-programmen är korrekt installerade på din plats, bör kommandot

info grep

ge dig tillgång till den fullständiga manualen.

Anteckningar

GNU 's not Unix, men Unix är ett odjur; dess pluralform är Unixen.

Referenserade av

bzgrep, ksh93, perlfunc, xzgrep.

Sidslut


Det här är en maskinöversättning av linux kommando manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.