grep(1): Skillnad mellan sidversioner
Admin (diskussion | bidrag) |
Admin (diskussion | bidrag) |
||
| Rad 560: | Rad 560: | ||
Om du upptäcker renderingsproblem i denna HTML-version, eller om du känner till en bättre eller mer uppdaterad källa för sidan, eller har korrigeringar eller förbättringar av informationen i denna kolofon (som ''inte'' är en del av originalmanualen), skicka e-post till man-pages@man7.org. | Om du upptäcker renderingsproblem i denna HTML-version, eller om du känner till en bättre eller mer uppdaterad källa för sidan, eller har korrigeringar eller förbättringar av informationen i denna kolofon (som ''inte'' är en del av originalmanualen), skicka e-post till man-pages@man7.org. | ||
= Sidslut = | |||
Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man1/grep.1.html | |||
Det här är en maskinöversättning av Linux man sidor 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/ | |||
<BR><BR>Tack till [https://digfix.se Digital Fixare Stockholm] som har sponsrat [https://www.linux.se Linux.se] med webbhotell. | |||
[[Kategori:Linuxmanual grupp 1]] | |||
[[Kategori:Linuxmanual]] | |||
Nuvarande version från 2 februari 2026 kl. 07.16
GREP(1) — Användarkommandon
NAMN
grep – skriv ut rader som matchar mönster
SYNOPSIS
grep [ALTERNATIV]... MÖNSTER [FIL]... grep [ALTERNATIV]... -e MÖNSTER ... [FIL]... grep [ALTERNATIV]... -f MÖNSTERFIL ... [FIL]...
BESKRIVNING
grep söker efter mönster i varje FIL. I synopsisens första form, som används om inga alternativen -e eller -f finns, är första operanden MÖNSTER ett eller flera mönster separerade med nyradstecken, och grep skriver ut varje rad som matchar ett mönster. Vanligtvis bör MÖNSTER citeras (t.ex. med enkla citattecken) när grep används i ett skalkommando.
En FIL som är ”-” betyder standard in. Om ingen FIL anges, undersöker rekursiva sökningar arbetskatalogen, och icke-rekursiva sökningar läser standard in.
ALTERNATIV
Generell programinformation
--help
- Skriv ut ett användningsmeddelande och avsluta.
-V, --version
- Skriv ut versionsnumret för grep och avsluta.
Mönstersyntax
-E, --extended-regexp
- Tolka MÖNSTER som utökade reguljära uttryck (ERE; se nedan).
-F, --fixed-strings
- Tolka MÖNSTER som fasta strängar, inte reguljära uttryck.
-G, --basic-regexp
- Tolka MÖNSTER som grundläggande reguljära uttryck (BRE; se nedan). Detta är standard.
-P, --perl-regexp
- Tolka MÖNSTER som Perl-kompatibla reguljära uttryck (PCRE). Detta alternativ är experimentellt i kombination med alternativet -z (--null-data), och grep -P kan varna om ej implementerade funktioner.
Matchningsstyrning
-e MÖNSTER, --regexp='MÖNSTER
- Använd MÖNSTER som mönster. Om alternativet används flera gånger eller kombineras med alternativet -f (--file), sök efter alla angivna mönster. Detta alternativ kan användas för att skydda ett mönster som börjar med ”-”.
-f FIL, --file='FIL
- Hämta mönster från FIL, ett per rad. Om alternativet används flera gånger eller kombineras med alternativet -e (--regexp), sök efter alla angivna mönster. Den tomma filen innehåller noll mönster och matchar därför ingenting. Om FIL är -, läs mönster från standard in.
-i, --ignore-case
- Ignorera skillnader i versaler/gemener i mönster och indata, så att tecken som bara skiljer sig i skiftläge matchar varandra.
--no-ignore-case
- Ignorera inte skillnader i versaler/gemener i mönster och indata. Detta är standard. Alternativet är användbart för att skicka till skalskript som redan använder -i, för att upphäva effekten eftersom de två alternativen åsidosätter varandra.
-v, --invert-match
- Invertera matchningen för att välja icke-matchande rader.
-w, --word-regexp
- Välj endast rader som innehåller träffar som utgör hela ord. Testet är att den matchande delsträngen antingen måste vara i början av raden, eller föregås av ett icke-ord-konstituerande tecken. På motsvarande sätt måste den antingen vara i slutet av raden eller följas av ett icke-ord-konstituerande tecken. Ord-konstituerande tecken är bokstäver, siffror och understreck. Detta alternativ har ingen effekt om även -x anges.
-x, --line-regexp
- Välj endast träffar som exakt matchar hela raden. För ett reguljärt uttryck är detta som att sätta parenteser runt mönstret och sedan omge det med ^ och $.
Allmän utdata-styrning
-c, --count
- Undertryck normal utdata; skriv i stället ut ett antal matchande rader för varje indatafil. Med alternativet -v (--invert-match) räknas i stället icke-matchande rader.
--color[='NÄR], --colour[='NÄR]
- Omslut matchade (icke-tomma) strängar, matchande rader, kontextrader, filnamn, radnummer, byte-offset och avgränsare (för fält och grupper av kontextrader) med escape-sekvenser för att visa dem i färg i terminalen. Färgerna definieras av miljövariabeln GREP_COLORS. NÄR är never, always eller auto.
-L, --files-without-match
- Undertryck normal utdata; skriv i stället ut namnet på varje indatafil som normalt inte skulle ha gett någon utdata.
-l, --files-with-matches
- Undertryck normal utdata; skriv i stället ut namnet på varje indatafil som normalt skulle ha gett utdata. Skanningen av varje indatafil stoppas vid första matchningen.
-m ANTAL, --max-count='ANTAL
- Sluta läsa en fil efter ANTAL matchande rader. Om ANTAL är noll, stoppar grep direkt utan att läsa indata. Ett ANTAL på -1 behandlas som oändlighet och grep stannar inte; detta är standard. Om indata är standard in från en vanlig fil, och ANTAL matchande rader skrivs ut, säkerställer grep att standard in positioneras precis efter den sista matchande raden innan avslut, oavsett förekomst av efterföljande kontextrader. Detta gör att en anropande process kan återuppta en sökning. När grep stannar efter ANTAL matchande rader skriver den ut eventuella efterföljande kontextrader. När även -c eller --count används, skriver grep inte ut ett antal större än ANTAL. När även -v eller --invert-match används, stoppar grep efter att ha skrivit ut ANTAL icke-matchande rader.
-o, --only-matching
- Skriv bara ut de matchade (icke-tomma) delarna av en matchande rad, där varje sådan del skrivs på en separat utrad.
-q, --quiet, --silent
- Tyst; skriv inget till standard ut. Avsluta omedelbart med status noll om någon matchning hittas, även om ett fel upptäcktes. Se även alternativet -s eller --no-messages.
-s, --no-messages
- Undertryck felmeddelanden om filer som inte finns eller inte kan läsas.
Styrning av radprefix i utdata
-b, --byte-offset
- Skriv 0-baserad byte-offset inom indatafilen före varje utrad. Om -o (--only-matching) anges, skriv offset för själva matchade delen.
-H, --with-filename
- Skriv filnamnet för varje matchning. Detta är standard när det finns fler än en fil att söka i. Detta är en GNU-utökning.
-h, --no-filename
- Undertryck prefix med filnamn i utdata. Detta är standard när det bara finns en fil (eller bara standard in) att söka i.
--label='ETIKETT
- 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ökning, t.ex.:
gzip -cd foo.gz | grep --label=foo -H 'något mönster'
- Se även alternativet -H.
-n, --line-number
- Prefixa varje utrad med 1-baserat radnummer inom sin indatafil.
-T, --initial-tab
- Säkerställ att första tecknet i faktiskt radinnehåll ligger på en tabbstopp, så att tabbjustering ser normal ut. Detta är användbart med alternativ som prefixar utdata till innehållet: -H, -n och -b. För att förbättra sannolikheten att rader från en enskild fil börjar i samma kolumn, gör detta också att radnummer och byte-offset (om de finns) skrivs i ett minsta fältbredd.
-Z, --null
- Skriv en nollbyte (ASCII-tecknet NUL) i stället för tecknet som normalt följer efter ett filnamn. Exempelvis skriver grep -lZ en nollbyte efter varje filnamn i stället för den vanliga nyraden. Detta gör utdata entydig även om filnamn innehåller ovanliga tecken som nyrader. Alternativet kan användas med kommandon som find -print0, perl -0, sort -z och xargs -0 för att hantera godtyckliga filnamn, även sådana som innehåller nyradstecken.
Styrning av kontextrader
-A ANTAL, --after-context='ANTAL
- Skriv ANTAL rader efterföljande kontext efter matchande rader. Placerar en rad med gruppavgränsare (--) mellan sammanhängande grupper av träffar. Med -o eller --only-matching har detta ingen effekt och en varning ges.
-B ANTAL, --before-context='ANTAL
- Skriv ANTAL rader föregående kontext före matchande rader. Placerar en rad med gruppavgränsare (--) mellan sammanhängande grupper av träffar. Med -o eller --only-matching har detta ingen effekt och en varning ges.
-C ANTAL, - ANTAL, --context='ANTAL
- Skriv ANTAL rader kontext i utdata. Placerar en rad med gruppavgränsare (--) mellan sammanhängande grupper av träffar. Med -o eller --only-matching har detta ingen effekt och en varning ges.
--group-separator='SEP
- När -A, -B eller -C används, skriv SEP i stället för -- mellan grupper av rader.
--no-group-separator
- När -A, -B eller -C används, skriv ingen avgränsare mellan grupper av rader.
Fil- och katalogval
-a, --text
- Behandla en binär fil som om den vore text; detta motsvarar alternativet --binary-files=text.
--binary-files='TYP
- Om en fils data eller metadata indikerar att filen innehåller binärdata, anta att filen är av typen TYP. Icke-text-bytes indikerar binärdata; dessa är antingen utdatabytes som är felaktigt kodade för aktuell locale, eller nollbytes i indata när alternativet -z inte används.
- Som standard är TYP binary, och grep undertrycker utdata efter att nollbyte-binärdata i indata har upptäckts, och undertrycker utrar som innehåller felaktigt kodad data. När någon utdata undertrycks följer grep upp 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 nollbytes-binärdata att resten av filen inte matchar; detta motsvarar alternativet -I.
- Om TYP är text, behandlar grep en binär fil som om den vore text; detta motsvarar alternativet -a.
- När TYP är binary, kan grep behandla icke-text-bytes som radavslut även utan alternativet -z. Detta innebär att valet binary kontra text kan påverka om ett mönster matchar en fil. Exempelvis kan, när TYP är binary, mönstret
q$matchaqföljt direkt av en nollbyte, även om detta inte matchas när TYP är text. Omvänt kan, när TYP är binary, mönstret.(punkt) kanske inte matcha en nollbyte. - Varning: Alternativet -a kan skriva ut binärt skräp, vilket kan få otrevliga bieffekter om utdata går till en terminal och terminaldrivrutinen tolkar delar av det som kommandon. Å andra sidan, när man läser filer vars textkodningar är okända kan det vara hjälpsamt att använda -a eller sätta LC_ALL='C' i miljön, för att hitta fler matchningar även om matchningarna är osäkra att visa direkt.
-D ÅTGÄRD, --devices='ÅTGÄRD
- Om en indatafil är en enhet, FIFO eller socket, använd ÅTGÄRD för att hantera den. Som standard är ÅTGÄRD read, vilket betyder att enheter läses som vanliga filer. Om ÅTGÄRD är skip, hoppas enheter tyst över.
-d ÅTGÄRD, --directories='ÅTGÄRD
- Om en indatafil är en katalog, använd ÅTGÄRD för att hantera den. Som standard är ÅTGÄRD read, dvs. läs kataloger som om de vore vanliga filer. Om ÅTGÄRD är skip, hoppas kataloger tyst över. Om ÅTGÄRD är recurse, läs alla filer under varje katalog rekursivt, och följ symboliska länkar endast om de står på kommandoraden. Detta motsvarar alternativet -r.
--exclude='GLOB
- Hoppa över en kommandoradsfil vars namnsuffix matchar mönstret GLOB med jokerteckenmatchning; ett namnsuffix är antingen hela namnet, eller en efterföljande del som börjar med ett icke-snedstreck-tecken direkt efter ett snedstreck ('/) i namnet. Vid rekursiv sökning: hoppa över varje underfil vars basnamn matchar GLOB; basnamnet är delen efter sista snedstrecket. Ett mönster kan använda *, ? och []...'] som jokertecken, och ' för att citera ett jokertecken eller omvänt snedstreck bokstavligt.
--exclude-from='FIL
- Hoppa över filer vars basnamn matchar något av filnamnsglobbarna som läses från FIL (med jokerteckenmatchning enligt --exclude).
--exclude-dir='GLOB
- Hoppa över en kommandoradskatalog vars namnsuffix matchar GLOB. Vid rekursiv sökning: hoppa över varje underkatalog vars basnamn matchar GLOB. Ignorera redundanta avslutande snedstreck i GLOB.
-I
- Behandla en binär fil som om den inte innehöll matchande data; detta motsvarar alternativet --binary-files=without-match.
--include='GLOB
- Sök endast i filer vars basnamn matchar GLOB (med jokerteckenmatchning enligt --exclude). Om motstridiga alternativ --include och --exclude anges, vinner det som matchar sist. Om inget --include eller --exclude matchar, inkluderas en fil om inte det första sådana alternativet är --include.
-r, --recursive
- Läs alla filer under varje katalog rekursivt och följ symboliska länkar endast om de står på kommandoraden. Observera att om ingen filoperand anges, söker grep i arbetskatalogen. Detta motsvarar alternativet -d recurse.
-R, --dereference-recursive
- Läs alla filer under varje katalog rekursivt. Följ alla symboliska länkar, till skillnad från -r.
Övriga alternativ
--line-buffered
- Använd radbuffring för utdata. Detta kan ge en prestandastraff.
-U, --binary
- Behandla fil(er) som binära. Som standard, under MS-DOS och MS-Windows, gissar grep om en fil är text eller binär enligt beskrivningen för alternativet --binary-files. Om grep bedömer filen som text, tar den bort CR-tecken från originalinnehållet (för att reguljära uttryck med ^ och $ ska fungera korrekt). Att ange -U åsidosätter gissningen, så att alla filer läses och skickas vidare till matchningsmekanismen exakt som de är; om filen är en textfil med CR/LF-par i slutet av varje rad kan detta göra att vissa reguljära uttryck misslyckas. Detta alternativ har ingen effekt på andra plattformar än MS-DOS och MS-Windows.
-z, --null-data
- Behandla in- och utdata som sekvenser av rader, där varje rad avslutas av en nollbyte (ASCII NUL) i stället för en nyrad. Liksom -Z eller --null kan detta användas med kommandon som sort -z för att hantera godtyckliga filnamn.
REGULJÄRA UTTRYCK
Ett reguljärt uttryck är ett mönster som beskriver en mängd strängar. Reguljära uttryck konstrueras analogt med aritmetiska uttryck genom att använda operatorer för att kombinera mindre uttryck.
grep förstår tre olika varianter av syntax för reguljära uttryck: ”basic” (BRE), ”extended” (ERE) och ”perl” (PCRE). I GNU grep är grundläggande och utökade reguljära uttryck i praktiken olika notationer för samma mönstermatchningsfunktionalitet. I andra implementationer är grundläggande reguljära uttryck ofta mindre kraftfulla än utökade, även om det ibland kan vara tvärtom. Beskrivningen nedan gäller utökade reguljära uttryck; skillnader för grundläggande reguljära uttryck sammanfattas efteråt. Perl-kompatibla reguljära uttryck har annan funktionalitet och dokumenteras i pcre2syntax(3) och pcre2pattern(3), men fungerar bara om PCRE-stöd är aktiverat.
De grundläggande byggstenarna är 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. Alla metatecken med specialbetydelse kan citeras genom att föregås av ett omvänt snedstreck.
Punkten . matchar vilket enstaka tecken som helst. Det är ospecificerat om den matchar ett kodningsfel.
GREP(1) — Användarkommandon
NAMN
grep – skriv ut rader som matchar mönster
SYNOPSIS
grep [ALTERNATIV]... MÖNSTER [FIL]... grep [ALTERNATIV]... -e MÖNSTER ... [FIL]... grep [ALTERNATIV]... -f MÖNSTERFIL ... [FIL]...
BESKRIVNING
grep söker efter mönster i varje FIL. I synopsisens första form, som används om inga alternativen -e eller -f finns, är första operanden MÖNSTER ett eller flera mönster separerade med nyradstecken, och grep skriver ut varje rad som matchar ett mönster. Vanligtvis bör MÖNSTER citeras (t.ex. med enkla citattecken) när grep används i ett skalkommando.
En FIL som är ”-” betyder standard in. Om ingen FIL anges, undersöker rekursiva sökningar arbetskatalogen, och icke-rekursiva sökningar läser standard in.
ALTERNATIV
Generell programinformation
--help
- Skriv ut ett användningsmeddelande och avsluta.
-V, --version
- Skriv ut versionsnumret för grep och avsluta.
Mönstersyntax
-E, --extended-regexp
- Tolka MÖNSTER som utökade reguljära uttryck (ERE; se nedan).
-F, --fixed-strings
- Tolka MÖNSTER som fasta strängar, inte reguljära uttryck.
-G, --basic-regexp
- Tolka MÖNSTER som grundläggande reguljära uttryck (BRE; se nedan). Detta är standard.
-P, --perl-regexp
- Tolka MÖNSTER som Perl-kompatibla reguljära uttryck (PCRE). Detta alternativ är experimentellt i kombination med alternativet -z (--null-data), och grep -P kan varna om ej implementerade funktioner.
Matchningsstyrning
-e MÖNSTER, --regexp='MÖNSTER
- Använd MÖNSTER som mönster. Om alternativet används flera gånger eller kombineras med alternativet -f (--file), sök efter alla angivna mönster. Detta alternativ kan användas för att skydda ett mönster som börjar med ”-”.
-f FIL, --file='FIL
- Hämta mönster från FIL, ett per rad. Om alternativet används flera gånger eller kombineras med alternativet -e (--regexp), sök efter alla angivna mönster. Den tomma filen innehåller noll mönster och matchar därför ingenting. Om FIL är -, läs mönster från standard in.
-i, --ignore-case
- Ignorera skillnader i versaler/gemener i mönster och indata, så att tecken som bara skiljer sig i skiftläge matchar varandra.
--no-ignore-case
- Ignorera inte skillnader i versaler/gemener i mönster och indata. Detta är standard. Alternativet är användbart för att skicka till skalskript som redan använder -i, för att upphäva effekten eftersom de två alternativen åsidosätter varandra.
-v, --invert-match
- Invertera matchningen för att välja icke-matchande rader.
-w, --word-regexp
- Välj endast rader som innehåller träffar som utgör hela ord. Testet är att den matchande delsträngen antingen måste vara i början av raden, eller föregås av ett icke-ord-konstituerande tecken. På motsvarande sätt måste den antingen vara i slutet av raden eller följas av ett icke-ord-konstituerande tecken. Ord-konstituerande tecken är bokstäver, siffror och understreck. Detta alternativ har ingen effekt om även -x anges.
-x, --line-regexp
- Välj endast träffar som exakt matchar hela raden. För ett reguljärt uttryck är detta som att sätta parenteser runt mönstret och sedan omge det med ^ och $.
Allmän utdata-styrning
-c, --count
- Undertryck normal utdata; skriv i stället ut ett antal matchande rader för varje indatafil. Med alternativet -v (--invert-match) räknas i stället icke-matchande rader.
--color[='NÄR], --colour[='NÄR]
- Omslut matchade (icke-tomma) strängar, matchande rader, kontextrader, filnamn, radnummer, byte-offset och avgränsare (för fält och grupper av kontextrader) med escape-sekvenser för att visa dem i färg i terminalen. Färgerna definieras av miljövariabeln GREP_COLORS. NÄR är never, always eller auto.
-L, --files-without-match
- Undertryck normal utdata; skriv i stället ut namnet på varje indatafil som normalt inte skulle ha gett någon utdata.
-l, --files-with-matches
- Undertryck normal utdata; skriv i stället ut namnet på varje indatafil som normalt skulle ha gett utdata. Skanningen av varje indatafil stoppas vid första matchningen.
-m ANTAL, --max-count='ANTAL
- Sluta läsa en fil efter ANTAL matchande rader. Om ANTAL är noll, stoppar grep direkt utan att läsa indata. Ett ANTAL på -1 behandlas som oändlighet och grep stannar inte; detta är standard. Om indata är standard in från en vanlig fil, och ANTAL matchande rader skrivs ut, säkerställer grep att standard in positioneras precis efter den sista matchande raden innan avslut, oavsett förekomst av efterföljande kontextrader. Detta gör att en anropande process kan återuppta en sökning. När grep stannar efter ANTAL matchande rader skriver den ut eventuella efterföljande kontextrader. När även -c eller --count används, skriver grep inte ut ett antal större än ANTAL. När även -v eller --invert-match används, stoppar grep efter att ha skrivit ut ANTAL icke-matchande rader.
-o, --only-matching
- Skriv bara ut de matchade (icke-tomma) delarna av en matchande rad, där varje sådan del skrivs på en separat utrad.
-q, --quiet, --silent
- Tyst; skriv inget till standard ut. Avsluta omedelbart med status noll om någon matchning hittas, även om ett fel upptäcktes. Se även alternativet -s eller --no-messages.
-s, --no-messages
- Undertryck felmeddelanden om filer som inte finns eller inte kan läsas.
Styrning av radprefix i utdata
-b, --byte-offset
- Skriv 0-baserad byte-offset inom indatafilen före varje utrad. Om -o (--only-matching) anges, skriv offset för själva matchade delen.
-H, --with-filename
- Skriv filnamnet för varje matchning. Detta är standard när det finns fler än en fil att söka i. Detta är en GNU-utökning.
-h, --no-filename
- Undertryck prefix med filnamn i utdata. Detta är standard när det bara finns en fil (eller bara standard in) att söka i.
--label='ETIKETT
- 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ökning, t.ex.:
gzip -cd foo.gz | grep --label=foo -H 'något mönster'
- Se även alternativet -H.
-n, --line-number
- Prefixa varje utrad med 1-baserat radnummer inom sin indatafil.
-T, --initial-tab
- Säkerställ att första tecknet i faktiskt radinnehåll ligger på en tabbstopp, så att tabbjustering ser normal ut. Detta är användbart med alternativ som prefixar utdata till innehållet: -H, -n och -b. För att förbättra sannolikheten att rader från en enskild fil börjar i samma kolumn, gör detta också att radnummer och byte-offset (om de finns) skrivs i ett minsta fältbredd.
-Z, --null
- Skriv en nollbyte (ASCII-tecknet NUL) i stället för tecknet som normalt följer efter ett filnamn. Exempelvis skriver grep -lZ en nollbyte efter varje filnamn i stället för den vanliga nyraden. Detta gör utdata entydig även om filnamn innehåller ovanliga tecken som nyrader. Alternativet kan användas med kommandon som find -print0, perl -0, sort -z och xargs -0 för att hantera godtyckliga filnamn, även sådana som innehåller nyradstecken.
Styrning av kontextrader
-A ANTAL, --after-context='ANTAL
- Skriv ANTAL rader efterföljande kontext efter matchande rader. Placerar en rad med gruppavgränsare (--) mellan sammanhängande grupper av träffar. Med -o eller --only-matching har detta ingen effekt och en varning ges.
-B ANTAL, --before-context='ANTAL
- Skriv ANTAL rader föregående kontext före matchande rader. Placerar en rad med gruppavgränsare (--) mellan sammanhängande grupper av träffar. Med -o eller --only-matching har detta ingen effekt och en varning ges.
-C ANTAL, - ANTAL, --context='ANTAL
- Skriv ANTAL rader kontext i utdata. Placerar en rad med gruppavgränsare (--) mellan sammanhängande grupper av träffar. Med -o eller --only-matching har detta ingen effekt och en varning ges.
--group-separator='SEP
- När -A, -B eller -C används, skriv SEP i stället för -- mellan grupper av rader.
--no-group-separator
- När -A, -B eller -C används, skriv ingen avgränsare mellan grupper av rader.
Fil- och katalogval
-a, --text
- Behandla en binär fil som om den vore text; detta motsvarar alternativet --binary-files=text.
--binary-files='TYP
- Om en fils data eller metadata indikerar att filen innehåller binärdata, anta att filen är av typen TYP. Icke-text-bytes indikerar binärdata; dessa är antingen utdatabytes som är felaktigt kodade för aktuell locale, eller nollbytes i indata när alternativet -z inte används.
- Som standard är TYP binary, och grep undertrycker utdata efter att nollbyte-binärdata i indata har upptäckts, och undertrycker utrar som innehåller felaktigt kodad data. När någon utdata undertrycks följer grep upp 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 nollbytes-binärdata att resten av filen inte matchar; detta motsvarar alternativet -I.
- Om TYP är text, behandlar grep en binär fil som om den vore text; detta motsvarar alternativet -a.
- När TYP är binary, kan grep behandla icke-text-bytes som radavslut även utan alternativet -z. Detta innebär att valet binary kontra text kan påverka om ett mönster matchar en fil. Exempelvis kan, när TYP är binary, mönstret
q$matchaqföljt direkt av en nollbyte, även om detta inte matchas när TYP är text. Omvänt kan, när TYP är binary, mönstret.(punkt) kanske inte matcha en nollbyte. - Varning: Alternativet -a kan skriva ut binärt skräp, vilket kan få otrevliga bieffekter om utdata går till en terminal och terminaldrivrutinen tolkar delar av det som kommandon. Å andra sidan, när man läser filer vars textkodningar är okända kan det vara hjälpsamt att använda -a eller sätta LC_ALL='C' i miljön, för att hitta fler matchningar även om matchningarna är osäkra att visa direkt.
-D ÅTGÄRD, --devices='ÅTGÄRD
- Om en indatafil är en enhet, FIFO eller socket, använd ÅTGÄRD för att hantera den. Som standard är ÅTGÄRD read, vilket betyder att enheter läses som vanliga filer. Om ÅTGÄRD är skip, hoppas enheter tyst över.
-d ÅTGÄRD, --directories='ÅTGÄRD
- Om en indatafil är en katalog, använd ÅTGÄRD för att hantera den. Som standard är ÅTGÄRD read, dvs. läs kataloger som om de vore vanliga filer. Om ÅTGÄRD är skip, hoppas kataloger tyst över. Om ÅTGÄRD är recurse, läs alla filer under varje katalog rekursivt, och följ symboliska länkar endast om de står på kommandoraden. Detta motsvarar alternativet -r.
--exclude='GLOB
- Hoppa över en kommandoradsfil vars namnsuffix matchar mönstret GLOB med jokerteckenmatchning; ett namnsuffix är antingen hela namnet, eller en efterföljande del som börjar med ett icke-snedstreck-tecken direkt efter ett snedstreck (/) i namnet. Vid rekursiv sökning: hoppa över varje underfil vars basnamn matchar GLOB; basnamnet är delen efter sista snedstrecket. Ett mönster kan använda *, ? och []...'] som jokertecken, och \ för att citera ett jokertecken eller omvänt snedstreck bokstavligt.
--exclude-from='FIL
- Hoppa över filer vars basnamn matchar något av filnamnsglobbarna som läses från FIL (med jokerteckenmatchning enligt --exclude).
--exclude-dir='GLOB
- Hoppa över en kommandoradskatalog vars namnsuffix matchar GLOB. Vid rekursiv sökning: hoppa över varje underkatalog vars basnamn matchar GLOB. Ignorera redundanta avslutande snedstreck i GLOB.
-I
- Behandla en binär fil som om den inte innehöll matchande data; detta motsvarar alternativet --binary-files=without-match.
--include='GLOB
- Sök endast i filer vars basnamn matchar GLOB (med jokerteckenmatchning enligt --exclude). Om motstridiga alternativ --include och --exclude anges, vinner det som matchar sist. Om inget --include eller --exclude matchar, inkluderas en fil om inte det första sådana alternativet är --include.
-r, --recursive
- Läs alla filer under varje katalog rekursivt och följ symboliska länkar endast om de står på kommandoraden. Observera att om ingen filoperand anges, söker grep i arbetskatalogen. Detta motsvarar alternativet -d recurse.
-R, --dereference-recursive
- Läs alla filer under varje katalog rekursivt. Följ alla symboliska länkar, till skillnad från -r.
Övriga alternativ
--line-buffered
- Använd radbuffring för utdata. Detta kan ge en prestandastraff.
-U, --binary
- Behandla fil(er) som binära. Som standard, under MS-DOS och MS-Windows, gissar grep om en fil är text eller binär enligt beskrivningen för alternativet --binary-files. Om grep bedömer filen som text, tar den bort CR-tecken från originalinnehållet (för att reguljära uttryck med ^ och $ ska fungera korrekt). Att ange -U åsidosätter gissningen, så att alla filer läses och skickas vidare till matchningsmekanismen exakt som de är; om filen är en textfil med CR/LF-par i slutet av varje rad kan detta göra att vissa reguljära uttryck misslyckas. Detta alternativ har ingen effekt på andra plattformar än MS-DOS och MS-Windows.
-z, --null-data
- Behandla in- och utdata som sekvenser av rader, där varje rad avslutas av en nollbyte (ASCII NUL) i stället för en nyrad. Liksom -Z eller --null kan detta användas med kommandon som sort -z för att hantera godtyckliga filnamn.
REGULJÄRA UTTRYCK
Ett reguljärt uttryck är ett mönster som beskriver en mängd strängar. Reguljära uttryck konstrueras analogt med aritmetiska uttryck genom att använda operatorer för att kombinera mindre uttryck.
grep förstår tre olika varianter av syntax för reguljära uttryck: ”basic” (BRE), ”extended” (ERE) och ”perl” (PCRE). I GNU grep är grundläggande och utökade reguljära uttryck i praktiken olika notationer för samma mönstermatchningsfunktionalitet. I andra implementationer är grundläggande reguljära uttryck ofta mindre kraftfulla än utökade, även om det ibland kan vara tvärtom. Beskrivningen nedan gäller utökade reguljära uttryck; skillnader för grundläggande reguljära uttryck sammanfattas efteråt. Perl-kompatibla reguljära uttryck har annan funktionalitet och dokumenteras i pcre2syntax(3) och pcre2pattern(3), men fungerar bara om PCRE-stöd är aktiverat.
De grundläggande byggstenarna är 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. Alla metatecken med specialbetydelse kan citeras genom att föregås av ett omvänt snedstreck.
Punkten . matchar vilket enstaka tecken som helst. Det är ospecificerat om den matchar ett kodningsfel.
Teckenklasser och hakparentesuttryck
Ett hakparentesuttryck är en lista av tecken omslutna av [ och ]. Det matchar vilket enstaka tecken som helst i listan. Om listans första tecken är cirkumflex ^, matchar det vilket tecken som helst som inte finns i listan; det är ospecificerat om det matchar ett kodningsfel. Exempel: det reguljära uttrycket [0123456789] matchar vilken enstaka siffra som helst.
Inuti ett hakparentesuttryck består ett intervalluttryck av två tecken separerade av ett bindestreck. I standard-C-locale matchar det vilket enstaka tecken som helst som ligger mellan de två tecknen i ASCII-ordning, inklusive ändpunkterna. Exempel: [a-d] är ekvivalent med [abcd]. I andra locales är beteendet ospecificerat: [a-d] kan vara ekvivalent med [abcd] eller [aBbCcDd] eller något annat hakparentesuttryck, eller misslyckas med att matcha något tecken, eller matcha en oregelbunden mängd tecken, eller vara ogiltigt. För att få den traditionella tolkningen kan du använda C-locale genom att sätta miljövariabeln LC_ALL till värdet C.
Slutligen är vissa namngivna teckenklasser fördefinierade inom hakparenteser. Namnen är självförklarande och är: [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] och [:xdigit:]. Exempel: alnum: betyder teckenklassen av siffror och bokstäver i aktuell locale. I C-locale och ASCII-kodning är detta samma som [0-9A-Za-z]. (Observera att hakparenteserna i dessa klassnamn är 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 en bokstavlig ], placera den först i listan. På samma sätt: för att inkludera en bokstavlig ^, placera den var som helst utom först. För att inkludera ett bokstavligt -, placera det sist.
Förankring
Cirkumflexen ^ och dollartecknet $ är metatecken som respektive matchar den tomma strängen i början och slutet av en rad.
Det omvända snedstrecket 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 kanten av ett ord, och \B matchar den tomma strängen under förutsättning 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:
?
- Föregående objekt är valfritt och matchas högst en gång.
*
- Föregående objekt matchas noll eller fler gånger.
+
- Föregående objekt matchas en eller fler gånger.
{n}
- Föregående objekt matchas exakt n gånger.
{n,}
- Föregående objekt matchas n eller fler gånger.
{,m}
- Föregående objekt matchas högst m gånger. Detta är en GNU-utökning.
{n,m}
- Föregående objekt matchas minst n gånger men inte fler än m gånger.
Sammanfogning
Två reguljära uttryck kan sammanfogas; det resulterande reguljära uttrycket matchar vilken sträng som helst som bildas genom att sammanfoga två delsträngar som respektive matchar de sammanfogade uttrycken.
Alternation
Två reguljära uttryck kan förenas med infix-operatorn |; det resulterande reguljära uttrycket matchar vilken sträng som helst som matchar endera av de alternativa uttrycken.
Prioritet
Upprepning har högre prioritet än sammanfogning, som i sin tur har högre prioritet än alternation. Ett helt uttryck kan omslutas av parenteser för att åsidosätta dessa prioritetsregler och bilda ett deluttryck.
Bakåtreferenser och deluttryck
Bakåtreferensen \n, där n är en ensam siffra, matchar delsträngen som tidigare matchades av det n:te parenteserade deluttrycket i det reguljära uttrycket.
Grundläggande kontra utökade reguljära uttryck
I grundläggande reguljära uttryck förlorar metatecknen ?, +, {, |, ( och ) sin specialbetydelse; använd i stället de backslashade varianterna \?, \+, \{, \|, \( och \).
RETURSTATUS
Normalt är returstatusen 0 om en rad väljs, 1 om inga rader väljs och 2 om ett fel inträffade. Om alternativet -q eller --quiet eller --silent används och en rad väljs, är returstatusen 0 även om ett fel inträffade.
MILJÖ
Beteendet hos grep påvergas av följande miljövariabler.
Locale för kategorin LC_foo anges genom att undersöka de tre miljövariablerna LC_ALL, LC_foo och LANG, i den ordningen. Den första av dessa variabler som är satt anger locale. Till exempel, om LC_ALL inte är satt men LC_MESSAGES är satt till pt_BR, används brasiliansk portugisisk locale för kategorin LC_MESSAGES.
C-locale används om ingen av dessa miljövariabler är satt, om locale-katalogen inte är installerad, eller om grep inte kompilerades med stöd för nationella språk (NLS). Skalkommandot
locale -a
listar locales som för närvarande är tillgängliga.
GREP_COLORS
- Styr hur alternativet --color markerar utdata. Värdet är en kolonseparerad lista av förmågor och har som standard:
ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36
med de booleska förmågorna rv och ne utelämnade (dvs. falska).
Stödda förmågor är som följer.
sl=
- SGR-sträng för hela valda rader (dvs. matchande rader när alternativet -v utelämnas, eller icke-matchande rader när -v anges). Om dock den booleska förmågan rv och alternativet -v båda anges, gäller den i stället för kontext-matchande rader. Standard är tom (terminalens standardfärgpar).
cx=
- SGR-sträng för hela kontextrader (dvs. icke-matchande rader när alternativet -v utelämnas, eller matchande rader när -v anges). Om dock den booleska förmågan rv och alternativet -v båda anges, gäller den i stället för valda icke-matchande rader. Standard är tom.
rv
- Boolesk förmåga som inverterar (byter) betydelsen av sl= och cx= när alternativet -v används. Standard är falsk.
mt=01;31
- SGR-sträng för matchad icke-tom text i valfri matchande rad (dvs. en vald rad när -v utelämnas, eller en kontextrad när -v anges). Att sätta detta är ekvivalent med att sätta både ms= och mc= till samma värde. Standard är fet röd text i förgrunden över aktuell radbakgrund.
ms=01;31
- SGR-sträng för matchad icke-tom text i en vald rad. (Används bara när -v utelämnas.) Effekten av sl= (eller cx= om rv) är fortsatt aktiv när detta tar vid.
mc=01;31
- SGR-sträng för matchad icke-tom text i en kontextrad. (Används bara när -v anges.) Effekten av cx= (eller sl= om rv) är fortsatt aktiv när detta tar vid.
fn=35
- SGR-sträng för filnamn som prefixar en innehållsrad. Standard är magenta förgrund.
ln=32
- SGR-sträng för radnummer som prefixar en innehållsrad. Standard är grön förgrund.
bn=32
- SGR-sträng för byte-offset som prefixar en innehållsrad. Standard är grön förgrund.
se=36
- SGR-sträng för avgränsare som infogas mellan valda radfält (':), mellan kontextradsfält (-), och mellan grupper av angränsande rader när icke-noll kontext anges (--). Standard är cyan förgrund.
ne
- Boolesk förmåga som förhindrar rensning till radslut med Erase in Line (EL) åt höger (\33[K) varje gång ett färgat objekt slutar. Detta behövs på terminaler där EL inte stöds, och kan även vara användbart när terminfo-egenskapen back_color_erase (bce) inte gäller, när de valda färgerna inte påverkar bakgrunden, eller när EL är för långsam eller flimrar. Standard är falsk.
Observera att booleska förmågor saknar någon =-del. De utelämnas (dvs. falska) som standard och blir sanna när de anges.
Se avsnittet om Select Graphic Rendition (SGR) i dokumentationen för textterminalen för tillåtna värden och deras betydelse som teckenattribut. Dessa delsträngsvärden är heltal i decimal representation och kan sammanfogas med semikolon. grep bygger ihop resultatet till en komplett SGR-sekvens (\33[ ... m). Vanliga värden att sammanfoga inkluderar 1 för fet, 4 för understruken, 5 för blink, 7 för inverterad, 39 för standard förgrund, 30 till 37 för förgrundsfärger, 90 till 97 för 16-färgs ljusa förgrundsfärger, 38;5;0 till 38;5;255 för 256-färgs (och 88-färgs) förgrund, 49 för standard bakgrund, 40 till 47 för bakgrundsfärger, 100 till 107 för 16-färgs ljusa bakgrunder, och 48;5;0 till 48;5;255 för 256-färgs (och 88-färgs) bakgrund.
LC_ALL, LC_COLLATE, LANG
- Dessa variabler anger locale för kategorin LC_COLLATE, som bestämmer sorteringsordningen som används för att tolka intervalluttryck som [a-z].
LC_ALL, LC_CTYPE, LANG
- Dessa variabler anger locale för kategorin LC_CTYPE, som bestämmer typen av tecken (t.ex. vilka tecken som räknas som blanksteg). Denna kategori bestämmer också teckenkodningen, dvs. om text är kodad i UTF-8, ASCII eller någon annan kodning. I C- eller POSIX-locale är alla tecken kodade som en enda byte och varje byte är ett giltigt tecken.
LC_ALL, LC_MESSAGES, LANG
- Dessa variabler anger locale för kategorin LC_MESSAGES, som bestämmer språket som grep använder för meddelanden. Standard-C-locale använder amerikansk engelska.
POSIXLY_CORRECT
- Om satt beter sig grep som POSIX kräver; annars beter sig grep mer som andra GNU-program. POSIX kräver att alternativ som följer efter filnamn måste behandlas som filnamn; som standard permuteras sådana alternativ till början av operandlistan och behandlas som alternativ. POSIX kräver också att okända alternativ diagnostiseras som ”illegal”, men eftersom de inte verkligen är mot lagen är standard att diagnostisera dem som ”invalid”.
ANMÄRKNINGAR
Denna manualsida underhålls endast sporadiskt; den fullständiga dokumentationen är ofta mer uppdaterad.
UPPHOVSRÄTT
Copyright 1998–2000, 2002, 2005–2026 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.
FEL
Rapportera fel
Skicka felrapporter via e-post till adressen ⟨bug-grep@gnu.org⟩. Ett e-postarkiv ⟨https://lists.gnu.org/mailman/listinfo/bug-grep⟩ och en felhanterare ⟨https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep⟩ finns tillgängliga.
Kända fel
Stora upprepningstal i konstruktionen {n,m} kan få grep att använda mycket minne. Dessutom kräver vissa andra obskyra reguljära uttryck exponentiell tid och minne och kan få grep att få slut på minne.
Bakåtreferenser är mycket långsamma och kan kräva exponentiell tid.
EXEMPEL
Följande exempel skriver ut plats och innehåll för varje rad som innehåller ”f” och slutar på ”.c”, inom alla filer i aktuell katalog vars namn innehåller ”g” och slutar på ”.h”.
Alternativet -n skriver ut radnummer, argumentet -- gör att expansioner av ”*g*.h” som börjar med ”-” behandlas som filnamn och inte alternativ, och den tomma filen /dev/null gör att filnamn skrivs ut även om bara ett filnamn råkar matcha ”*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 syntaxen för reguljära uttryck skiljer sig från skalets globbning som används för att matcha filnamn.
SE ÄVEN
Vanliga 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 komplett manual finns på ⟨https://www.gnu.org/software/grep/manual/⟩. Om programmen info och grep är korrekt installerade på ditt system, ger kommandot
info grep
åtkomst till hela manualen.
KOLOFON
Denna sida är en del av projektet GNU grep (verktyg för filsökning med reguljära uttryck). Information om projektet finns på ⟨https://www.gnu.org/software/grep/⟩.
Om du har en felrapport för denna manualsida, skicka den till bug-grep@gnu.org.
Denna sida hämtades från projektets uppströms Git-arkiv ⟨git://git.savannah.gnu.org/grep.git⟩ den 16 januari 2026. Vid den tidpunkten var datumet för den senaste commit som hittades i arkivet 2 januari 2026.
Om du upptäcker renderingsproblem i denna HTML-version, eller om du känner till en bättre eller mer uppdaterad källa för sidan, eller har korrigeringar eller förbättringar av informationen i denna kolofon (som inte är en del av originalmanualen), skicka e-post till man-pages@man7.org.
Sidslut
Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man1/grep.1.html
Det här är en maskinöversättning av Linux man sidor 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 Digital Fixare Stockholm som har sponsrat Linux.se med webbhotell.