Scroll to navigation

GREP(1) Användarkommandon GREP(1)

NAMN

grep, egrep, fgrep, rgrep — skriv ut rader som matchar mönster

SYNOPSIS

grep [FLAGGA…] MÖNSTER [FIL…]
grep [flagga…] -e MÖNSTER … [FIL…]
grep [FLAGGA…] -f MÖNSTERFIL … [FIL…]

BESKRIVNING

grep söker efter MÖNSTER i varje FIL. MÖNSTER är en eller flera mönster separerade av nyradstecken, och grep skriver ut varje rad som matchar ett mönster. Typiskt skall MÖNSTER omges av citationstecken när grep används i ett skalkommando.

En FIL som är ”-” står för standard in. Om ingen FIL anges undersöker rekursiva sökningar arbetskatalogen och icke-rekursiva sökningar läser från standard in.

Debian inkluderar även variantprogrammen egrep, fgrep och rgrep. Dessa program är desamma som grep -E, grep -F respektive grep -r. Uppströms avråder från dessa varianter, men Debian tillhandahåller dem för bakåtkompatibilitet. Av portabilitetsskäl är det rekommendabelt att undvika variantprogrammen, och använda grep med den relaterade flaggan istället.

FLAGGOR

Allmän programinformation

Skriv ut ett användningsmeddelande och avsluta.
Skriv ut greps versionsnummer och avsluta.

Mönstersyntax

Tolka MÖNSTER som utökade reguljära uttryck, (URU:er, se nedan).
Tolka MÖNSTER som fasta strängar, inte reguljära uttryck.
Tolka MÖNSTER som grundläggande reguljära uttryck (GRU:er, se nedan). Detta är standardläget.
Tolka MÖNSTER som Perl-kompatibla reguljära uttryck (PKRU:er). Denna flagga är experimentell när den kombineras med flaggan -z (--null-data), och grep -P kan varna för oimplementerade funktioner.

Matchningsstyrning

Använd MÖNSTER som mönster. Om denna flagga används flera gånger eller kombineras med flaggan -f (--file), sök efter alla givna mönster. Denna flagga kan användas för att skydda ett mönster som börjar med ”-”.
Hämta mönster från FIL, ett per rad. Om denna flagga används flera gånger eller kombineras med flaggan -e (--regexp), sök efter alla givna mönster. En tom fil innehåller noll mönster, och matchar därför ingenting.
Ignorera skiftlägesdistinktioner i mönster och indata, så att bokstäver som skiljer endast i skiftläge matchar varandra.
Ignorera inte skiftlägesdistinktioner i mönster och indata. Detta är standardläget. Denna flagga är användbar till att skicka till skalskript som redan använder -i, för att annullera dess effekt eftersom de två flaggorna åsidosätter varandra.
Invertera betydelsen hos matchningen, för att välja rader som inte matchar.
Välj endast rader som innehåller matchningar som utgör hela ord. Testet är att den matchade delsträngen antingen måste finnas i början på raden, eller föregås av ett tecken som inte utgör en del av ett ord. På motsvarande sätt måste den antingen finnas vid slutet av raden eller följas av ett tecken som inte utgör en del av ett ord. Tecken som utgör del av ord är bokstäver, siffror och understrykningstecknet. Denna flagga har ingen effekt om även -x anges.
Välj endast de matchningar som precis matchar hela raden. För ett mönster som är ett reguljärt uttryck är detta som att sätta parenteser runt mönstret och sedan omge det med ^ och $.

Allmän utmatningsstyrning

Utelämna normal utdata; skriv istället antalet matchade rader för varje indatafil. Med flaggan -v, --invert-match (se ovan), räkna rader som inte matchar.
Omge matchade (icke-tomma) strängar, matchande rader, sammanhangsrader, filnamn, radnummer, byteavstånd och separatorer (för fält och grupper av sammanhangsrader) med styrsekvenser för att visa dem i färg på terminalen. Färgerna definieras av miljövariabeln GREP_COLORS. NÄR är never, always eller auto.
Utelämna normal utdata; skriv istället namnen på varje indatafil från vilken ingen utdata normalt skulle ha skrivits.
Utelämna normal utdata; skriv istället namnet på varje indatafil från vilken utdata normalt skulle ha skrivits. Sökning i varje indatafil stannar vid första matchningen.
Sluta läsa en fil efter ANT matchande rader. Om ANT är noll slutar grep omedelbart utan att läsa indata. Ett ANT på -1 behandlas som oändligheten och grep slutar inte; detta är standardläget. Om indata är standard in från en normal fil, och ANT matchande rader skrivits, säkerställer grep att standard in är positionerad precis efter den sista matchande raden före den avslutar, oavsett förekomsten av efterföljande sammanhangsrader. Detta gör det möjligt för en anropande process att återuppta en sökning. När grep stannar efter NUM matchande rader skriver den ut eventuella efterföljande sammanhangsrader. När flaggan -c eller --count också används skriver grep inte ut ett antal större än ANT. När flaggan -v eller --invert-match också används stannar grep efter att ha skrivit ut ANT rader som inte matchar.
Skriv bara ut de matchande (icke-tomma) delarna av en matchande rad, med varje sådan del på en separat utskriftsrad.
Tyst; skriv inte ut något på standard ut. Avsluta omedelbart med status noll om en matchning hittas, även om ett fel upptäcktes. Se även flaggan -s eller --no-messages.
Utelämna felmeddelanden om filer som inte finns eller är oläsbara.

Styrning av prefix på utmatningsrader

Skriv ut det 0-baserade byteavståndet inom indatafilen före varje rad med utdata. Om -o (--only-matching) anges, skriv då avståndet till den matchande delen själv.
Skriv ut filnamnet för varje matchning. Detta är standard när det finns mer än en fil att söka i. Detta är en GNU-utvidgning.
Utelämna prefixen med filnamn i utdata. Detta är standard när det endast finns en fil (eller standard in) att söka i.
Visa indata som faktiskt kommer från standard in som om den kom från filen ETIKETT. Detta kan vara användbart för kommandon som transformerar en fils innehåll före sökningen, t.ex., gzip -cd apa.gz | grep --label=apa -H 'något mönster'. Se även flaggan -H.
Prefixa varje utdatarad med det 1-baserade radnumret inom sin indatafil.
Säkerställ att det första tecknet av faktiskt radinnehåll ligger på en tabulatorposition, så att justeringen av tabulaturer ser normal ut. Detta är användbart med flaggor som lägger till ett prefix på utdata till det faktiska innehållet: -H, -n och -b. För att förbättra sannolikheten att alla rader från viss fil kommer börja på samma kolumn får detta också radnumret och byteavståndet (om de finns) att skrivas med en minsta storlek på fältbredden.
Skriv ut en nollbyte (ASCII-tecknet NUL) istället för tecknet som normalt följer efter ett filnamn. Till exempel skriver grep -lZ ut en nollbyte efter varje filnamn istället för den vanliga nyraden. Denna flagga gör utdata otvetydig, även i närvaro av filnamn som innehåller ovanliga tecken som nyrader. Denna flagga kan användas med kommandon som find -print0, perl -0, sort -z och xargs -0 för att bearbeta godtyckliga filnamn, även sådana som innehåller nyradstecken.

Styrning av sammanhangsrader

Skriv ANT efterföljande sammanhangsrader efter matchande rader. Skriver en rad som innehåller en gruppseparator (--) mellan intilliggande grupper med matchningar. Med flaggan -o eller --only-matching har detta ingen effekt och en varning ges.
Skriv ANT inledande sammanhangsrader före matchande rader. Skriver en rad som innehåller en gruppseparator (--) mellan intilliggande grupper med matchningar. Med flaggan -o eller --only-matching har detta ingen effekt och en varning ges.
Skriv ANT sammanhangsrader i utdata. Skriver en rad som innehåller en gruppseparator (--) mellan intilliggande grupper med matchningar. Med flaggan -o eller --only-matching har detta ingen effekt och en varning ges.
När -A, -B eller -C används, skriv ut SEP istället för -- mellan grupper av rader.
När -A, -B eller -C används, skriv inte ut någon separator mellan grupper av rader.

Fil- och katalogval

Bearbeta en binärfil som om den vore text; detta är ekvivalent med flaggan --binary-files=text.
Om en fils data eller metadata indikerar att filen innehåller binärdata, anta att filen har typen TYP. Byte:ar som inte är text indikerar binärdata; dessa är antingen utdatabyte:ar som är felaktigt kodade för den aktuella lokalen, eller null-indatabyte:ar när flaggan -z inte ges.
Som standard är TYP binary, och grep utelämnar utdata efter att binär indata som är null upptäcks, och utelämnar utdatarader som innehåller felaktigt kodade data. När någon utdata utelämnas följer grep eventuell utdata med ett meddelande till standard fel som säger att en binär fil matchar.
Om TYP är without-match antar grep när den upptäcker binär indata som är null att resten av filen inte matchar; detta är ekvivalent med flaggan -I.
Om TYP är text bearbetar grep en binärfil som om den vore text; detta är ekvivalent med flaggan -a.
När TYP är binary kan grep hantera icke-textbyte:ar som radavslutare även utan flaggan -z. Detta betyder att val av binary eller text kan påverka huruvida ett mönster matchar en fil. Till exempel, när TYP är binary kan q$ matcha q omedelbart följt av en null-byte, medan detta inte matchar när TYP är text. Omvänt, när TYP är binary kan mönstret . (punkt) inte matcha en null-byte.
Varning: flaggan -a kan skriva ut binärt skräp, vilket kan ha otrevliga sidoeffekter om utdata är en terminal och om terminaldrivrutinen tolkar en del av det som kommandon. Å andra sidan, vid läsning av filer vars textkodning är okänd kan det vara till hjälp att använda -a eller att sätta LC_ALL='C' i miljön, för att hitta fler matchningar även om matchningarna inte är säkra att visas direkt.
Om en indatafil är en enhet (device), FIFO eller ett uttag (socket), använd då ÅTGÄRD för att bearbeta den. Som standard är ÅTGÄRD read, vilket betyder att enheten läses som om den vore en vanlig fil. Om ÅTGÄRD är skip hoppas enheter tyst över.
Om en indatafil är en katalog, använd ÅTGÄRD för att bearbeta den. Som standard är ÅTGÄRD read, d.v.s., läs kataloger som om de vore vanliga filer. Om ÅTGÄRD är skip, hoppa tyst över kataloger. Om ÅTGÄRD är recurse, läs alla filer under varje katalog, rekursivt, och följ symboliska länkar endast om de finns på kommandoraden. Detta är ekvivalent med flaggan -r.
Hoppa över eventuella kommandoradsfiler med ett namnsuffix som matchar mönstret GLOB med jokerteckensmatchning; ett namnsuffix är antingen hela namnet, eller en avslutande del som börjar med något annat än ett snedstreck omedelbart efter ett snedstreck (/) i namnet. Vid rekursiv sökning, hoppa över eventuella underfiler vars basnamn matchar GLOB; basnamnet är delen efter det sista snedstrecket. Ett mönster kan använda *, ? och [] som jokertecken, och \ för att skydda ett literalt jokertecken eller omvänt snedstreck.
Hoppa över filer vars basnamn matchar något av filnamns-globbarna som läses från FIL (med användning av jokerteckenmatchning som beskrivs under --exclude).
Hoppa över eventuella kommandoradskataloger med ett namnsuffix som matchar mönstret GLOB. Vid rekursiv sökning, hoppa över eventuella underkataloger vars basnamn matchar GLOB. Ignorera eventuella överflödiga avslutande snedstreck i GLOB.
Bearbeta en binär fil som om den inte innehöll någon matchande data; detta är ekvivalent med flaggan --binary-files=without-match.
Sök endast i filer vars basnamn matchar GLOB (med användning av jokerteckenmatchning som beskrivs under --exclude). Om motstridiga flaggor --include och --exclude ges vinner den sista som matchar. Om ingen flagga --include eller --exclude matchar inkluderas en fil om inte den första sådana flaggan är --include.
Läs alla filer under varje katalog, rekursivt, och följ symboliska länkar endast om de finns på kommandoraden. Observera att om ingen filoperand anges söker grep i arbetskatalogen. Detta är ekvivalent med flaggan -d recurse.
Läs alla filer under varje katalog, rekursivt. Följ alla symboliska länkar, till skillnad mot -r.

Andra flaggor

Använd radbuffring av utdata. Detta kan medföra en prestandakostnad.
Behandla filerna som binära. Som standard, under MS-DOS och MS-Windows gissar grep huruvida en fil är text eller binär så som det beskrivs för flaggan --binary-files. Om grep avgör att filen är en textfil tar den bort CR-tecknen från filens originalinnehåll (för att reguljära uttryck med ^ och $ skall fungera korrekt). Genom att ange -U åsidosätter man dessa gissningar, och gör att alla filer läses och skickas till matchningsmekanismen ordagranna; om filen är en textfil med CR/LF-par i slutet av varje rad kommer detta att få några reguljära uttryck att misslyckas. Denna flagga har ingen effekt på andra plattformar än MS-DOS och MS-Windows.
Behandla indata och utdata som sekvenser av rader, där var och en är avslutad av en nollbyte (ASCII-tecknet NUL) istället för en nyrad. Liksom flaggorna -Z eller --null kan denna flagga 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 med aritmetiska uttryck, genom att använda olika operatorer för att kombinera mindre uttryck.

grep förstår tre olika versioner av syntax för reguljära uttryck: ”grundläggande” (GRU), ”utökade” (URU) och ”perl” (PKRU). I GNU grep finns det ingen skillnad i tillgänglig funktionalitet mellan grundläggande och utökade syntax. I andra implementationer är grundläggande reguljära uttryck mindre kraftfulla. Följande beskrivning gäller för utökade reguljära uttryck; skillnaderna i grundläggande reguljära uttryck summeras efteråt. Perl-kompatibla reguljära uttryck ger ytterligare funktionalitet, och dokumenteras i pcre2syntax(3) och pcre2pattern(3), men fungerar bara om stöd för PKRU är aktiverat.

De grundläggande byggblocken är de reguljära uttryck som matchar ett enda tecken. De flesta tecken, inklusiva alla bokstäver och siffror, är reguljära uttryck som matchar sig själva. Alla metatecken med speciell betydelse kan skyddas genom att föregå dem med ett omvänt snedstreck.

Punkten . matchar alla enstaka tecken. Det är inte specificerat huruvida det matchar ett kodningsfel.

Teckenklasser och hakparentesuttryck

Ett hakparentesuttryck är en lista av tecken omgivna av [ och ]. Det matchar vilket enstaka tecken som helst som finns i listan. Om det första tecknet i listan är en cirkumflex ^ då matchar det vilket tecken som helst som inte finns i listan; det är ospecificerat huruvida det matchar ett kodningsfel. Till exempel matchar det reguljära uttrycket [0123456789] en godtycklig siffra.

Inom ett hakparentesuttryck består ett intervalluttryck av två tecken avskilda med ett bindestreck. Det matchar alla enstaka tecken som sorteras mellan de två tecknen, inklusive, med användning av lokalens sorteringsordning och teckenuppsättning. Till exempel, i standardlokalen C är [a-d] ekvivalent med [abcd]; det kan vara ekvivalent med [aAbBcCd], till exempel. För att få den traditionella tolkningen av hakparentesuttryck kan man använda lokalen C genom att sätta miljövariabeln LC_ALL till värdet C.

Slutligen är vissa namngivna klasser av tecken fördefinierade inom hakparentesuttryck enligt följande. Deras namn är självförklarande, och de är [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] och [:xdigit:]. Till exempel betyder [[:alnum:]] teckenklassen med siffror och bokstäver i den aktuella lokalen. I lokalen C och teckenuppsättningskodningen ASCII är detta detsamma som [0-9A-Za-z]. (Observera att hakparenteserna i dessa klassnamn är en del av de symboliska namnen, och måste inkluderas utöver hakparenteserna som avgränsar hakparentesuttrycket.) De flesta metatecken förlorar sin specialbetydelse inuti hakparentesuttryck. För att inkludera ett ordagrant ], placera det först i listan. På motsvarande sätt, för att inkludera ett ordagrant ^, placera det var som helst utom först. Slutligen, för att inkludera ett bokstavligt -, placera det sist.

Förankring

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

Tecknet omvänt snedstreck och specialuttryck

Symbolerna \< och \> matchar den tomma strängen i början respektive slutet av ett ord. Symbolen \b matchar den tomma strängen vid gränsen av ett ord, och \B matchar den tomma strängen förutsatt att det inte är vid gränsen 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 eller flera upprepningsoperatorer:

?
Föregående element är valfritt och matchar högst en gång.
*
Föregående element kommer matchas noll eller flera gånger.
+
Föregående element kommer matchas en eller flera gånger.
{n}
Föregående element matchas exakt n gånger.
{n,}
Föregående element matchas n eller fler gånger.
{,m}
Föregående element matchas högst m gånger. Detta är en GNU-utvidgning.
{n,m}
Föregående element matchas åtminstone n gånger, men inte mer än m gånger.

Sammansättning

Två reguljära uttryck kan sättas samman; det resulterande reguljära uttrycket matchar en sträng som är skapad genom sammansättning av två delsträngar som matchar respektive del av det sammansatta uttrycket.

Alternativ

Två reguljära uttryck kan sättas samman med infixoperatorn |; det resulterande reguljära uttrycket matchar en sträng som matchar endera av de alternativa uttrycken.

Precedens

Upprepning har precedens före sammansättning, vilket i sin tur har precedens före alternativ. Ett helt uttryck kan omges av parenteser för att åsidosätta dessa precedensregler och skapa ett deluttryck.

Bakåtreferenser och deluttryck

The back-reference \n , where n is a single digit, matches the substring previously matched by the nth parenthesized subexpression of the regular expression.

Grundläggande gentemot utökade reguljära uttryck

I grundläggande reguljära uttryck förlorar metatecknen ?, +, {, |, ( och ) sina speciella betydelser; använd istället versionen med omvänt snedstreck \?, \+, \{, \|, \( och \).

SLUTSTATUS

Normalt är slutstatusen 0 om en rad valts, 1 om inga rader valts och 2 om ett fel uppstod. Dock, om flaggan -q eller --quiet eller --silent används och en rad valts är slutstatus 0 även om ett fel uppstod.

MILJÖ

Beteendet hos grep påverkas av följande miljövariabler.

Lokalen för kategorin LC_apa anges genom att undersöka de tre miljövariablerna LC_ALL, LC_apa, LANG, i den ordningen. Den första av dessa variabler som är satt definierar lokalen. Till exempel, om LC_ALL inte är satt, men LC_MESSAGES är satt till pt_BR, då används lokalen brasiliansk portugisiska till kategorin LC_MESSAGES. Lokalen C används om ingen av dessa miljövariabler är satt, om lokalkatalogen inte är installerad eller om grep inte kompilerades med stöd för nationella språk (NLS). Skalkommandot locale -a listar lokaler som för närvarande finns tillgängliga.

Styr hur flaggan --color markerar utdata. Dess värde är en kolonseparerad lista av förmågor vilken som standard är ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 med de booleanska förmågorna rv och ne utelämnade (d.v.s. falska). De förmågor som stödjs är som följer.
SGR-delsträng för hela valda rader (d.v.s., matchande rader när kommandoradsflaggan -v inte är med, eller icke-matchande rader när -v anges). Om däremot den booleska förmågan rv och kommandoradsflaggan -v båda anges gäller den för sammanhangsmatchande rader istället. Standardvärdet är tomt (d.v.s., terminalens standardfärgpar).
SGR-delsträng för hela sammanhangsrader (d.v.s., icke matchande rader när kommandoradsflaggan -v inte är med, eller matchande rader när -v anges). Om däremot den booleska förmågan rv och kommandoradsflaggan -v båda anges gäller den för valda icke-matchande rader istället. Standardvärdet är tomt (d.v.s., terminalens standardfärgpar).
Booleskt värde som inverterar (byter) betydelsen på förmågorna sl= och cx= när kommandoradsflaggan -v är med. Standardvärdet är falskt (d.v.s., förmågan utelämnas).
SGR-delsträng för matchande icke-tom text i matchande rader (d.v.s., en vald rad när när kommandoradsflaggan -v inte är med, eller en sammanhangsrad när -v anges). Att sätta denna är ekvivalent med att sätta både ms= och mc= samtidigt till samma värde. Standardvärdet är röd fet text över den aktuella radbakgrunden.
SGR-delsträng för matchande icke-tom text valda rader. (Detta används bara när kommandoradsflaggan -v inte är med.) Effekten av förmågan sl= (eller cx= om rv) är fortfarande aktiv när detta slår till. Standardvärdet är fet röd text i förgrunden över den aktuella radbakgrunden.
SGR-delsträng för matchande icke-tom text i en sammanhangsrad. (Detta används bara när kommandoradsflaggan -v anges.) Effekten av förmågan cx= (eller sl= om rv) är fortfarande aktiv när detta slår till. Standardvärdet är fet röd text i förgrunden över den aktuella radbakgrunden.
SGR-delsträng för filnamnsprefix på en innehållsrad. Standardvärdet är magenta text i förgrunden över den aktuella radbakgrunden.
SGR-delsträng för radnummerprefix på en innehållsrad. Standardvärdet är grön text i förgrunden över terminalens standardbakgrund.
SGR-delsträng för byteavstånd på en innehållsrad. Standardvärdet är grön text i förgrunden över terminalens standardbakgrund.
SGR-delsträng för separatorer som infogas mellan valda radfält (:), mellan kontextradsfält, (-), och mellan grupper av intilliggande rader när nollskild sammanhang anges (--). Standardvärdet är cyan text i förgrunden över terminalens standardbakgrund.
Booleskt värde som förhindrar tömning till slutet av raden med Erase in Line (EL) to Right (\33[K) varje gång en färglagd post slutar. Detta behövs på terminaler på vilka EL inte stödjs. Det är utöver det användbart på terminaler för vilka den booleska terminfo-förmågan back_color_erase (bce) 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. Standardvärdet är falskt (d.v.s., förmågan utelämnas).

Obervera att booleska förmågor inte har någon del =…. De utelämnas (d.v.s., falska) som standard och blir sanna när de anges.

Se avsnittet Select Graphic Rendition (SGR) i dokumentationen av textterminalen som används för tillåtna värden och deras betydelse som teckenattribut. Dessa delsträngsvärden är heltal i decimal representation och kan slås samman med semikolon. grep tar hand om att sätta samman resultatet till en fullständig SGR-sekvens (\33[m). Vanliga värden att sätta samman innefattar 1 för fetstil, 4 för understrykning, 5 för blink, 7 för invers, 39 för standardförgrundsfärg, 30 till 37 för förgrundsfärger, 90 till 97 för 16-färgersläge för förgrundsfärger, 38;5;0 till 38;5;255 för 88-färgersläges och 256-färgersläges förgrundsfärger, 49 för standardbakgrundsfärg, 40 till 47 för bakgrundsfärger, 100 till 107 för 16-bitarsläges bakgrundsfärger, och 48;5;0 till 48;5;255 för 88-färgersläges och 256-färgersläges bakgrundsfärger.

Dessa variabler anger lokalen för kategorin LC_COLLATE, vilken avgör sorteringsordningen som används för att tolka intervalluttryck som [a-z].
Dessa variabler anger lokalen för kategorin LC_CTYPE, vilken avgör typ på tecken, t.ex. vilka tecken som är mellanrum. Denna kategori avgör även teckenkodningen, det vill säga, huruvida text är kodad med UTF-8, ASCII eller någon annan kodning. I lokalen C eller POSIX är alla tecken kodade som en enda byte och varje byte är ett giltigt tecken.
Dessa variabler anger lokalen för kategorin LC_MESSAGES, vilken avgör språket som grep använder för meddelanden. Standardlokalen C använder meddelanden på amerikansk engelska.
Om satt beter sig grep som POSIX kräver; annars beter sig grep mer som andra GNU-program. POSIX kräver att flaggor som följer filnamn måste behandlas som filnamn; normalt flyttas sådana flaggor till början av operandlistan och behandlas som flaggor. Vidare kräver POSIX att okända flaggor diagnostiseras som ”illegal”, men eftersom de inte i egentlig mening strider mot lagen är standard att diagnostisera dem som ”invalid” (ogiltig). POSIXLY_CORRECT avaktiverar även _N_GNU_nonoption_argv_flags_ som beskrivs nedan.
_N_GNU_nonoption_argv_flags_
(Här är N greps numeriska process-ID.) Om det i:e tecknet i denna miljövariabels värde är 1, tolka inte den i:e operanden till grep som en flagga, även om den ser ut att vara det. Ett skal kan lägga in denna variabel i miljön för varje kommando det kör, och därigenom ange vilka operander som är resultatet av jokerteckensexpansion av filnamn och därför inte bör hanteras som flaggor. Detta beteende är endast tillgängligt med GNU C-biblioteket, och endast när POSIXLY_CORRECT inte är satt.

NOTERINGAR

Denna manualsida underhålls endast sporadiskt; den fullständiga dokumentationen är ofta mer aktuell.

COPYRIGHT

Copyright 1998-2000, 2002, 2005-2022 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 NÅGOT SPECIELLT ÄNDAMÅL.

FEL

Rapportering av fel

E-posta felrapporter till felrapporteringsadressen ⟨bug-grep@gnu.org⟩. Ett e-postarkiv ⟨https://lists.gnu.org/mailman/listinfo/bug-grep⟩ och en felärendehanterare ⟨https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep⟩ finns tillgängliga. Rapportera fel på översättningen till den svenska översättningslistan ⟨tp-sv@listor.tp-sv.se⟩

Kända fel

Höga upprepningsantal i konstruktionen {n,m} kan få grep att använda mängder av minne. Dessutom kräver vissa andra obskyra reguljära uttryck exponentiell tid och utrymme, och kan göra att grep får slut på minne.

Bakåtreferenser är mycket långsamma, och kan behöva exponentiell tid.

EXEMPEL

Följande exempel skriver ut platsen och innehållet för alla rader som innehåller ”f” och slutar i ”.c”, i alla filer i den aktuella katalogen vars namn innehåller ”g” och slutar på ”.h”. Flaggan -n skriver ut radnummer, argumentet -- hanterar expansioner av ”*g*.h” som börjar med ”-” som filnamn och inte flaggor, och den tomma filen /dev/null gör att filnamn skrivs ut även om bara ett filnamn råkar ha formen ”*g*.h”.


$ grep -n -- 'f.*\.c$' *g*.h /dev/null
argmatch.h:1:/* definitions and prototypes for argmatch.c

Den enda raden som matchar är rad 1 i argmatch.h. Observera att det reguljära uttryckets syntax som används i mönstret skiljer sig från glob-syntaxen som skalet använder för att matcha filnamn.

SE ÄVEN

Reguljära manualsidor

awk(1), cmp(1), diff(1), find(1), perl(1), sed(1), sort(1), xargs(1), read(2), pcre2(3), pcre2syntax(3), pcre2pattern(3), terminfo(5), glob(7), regex(7)

Fullständig dokumentation

En fullständig manual ⟨https://www.gnu.org/software/grep/manual/⟩ finns tillgänglig. Om programmen info och grep är korrekt installerade på sajten skall kommandot

info grep

ge dig tillgång till den kompletta manualen.

ÖVERSÄTTNING

Den svenska översättningen av denna manualsida skapades av Göran Uddeborg <goeran@uddeborg.se>

Denna översättning är fri dokumentation; läs GNU General Public License Version 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ eller senare för upphovsrättsvillkor. Vi tar INGET ANSVAR.

Om du hittar fel i översättningen av denna manualsida, skicka ett mail till ⟨Tp-sv@listor.tp-sv.se⟩.

2019-12-29 GNU grep 3.8