.\" -*- coding: UTF-8 -*-
.de dT
.ds Dt \\$2
..
.\" GNU grep man page
.dT Time-stamp: 2019-12-29
.\" Update the above date whenever a change to either this file or
.\" grep.c's 'usage' function results in a nontrivial change to the man page.
.\" In Emacs, you can update the date by running 'M-x time-stamp'
.\" after you make a change that you decide is nontrivial.
.\" It is no big deal to forget to update the date.
.
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH GREP 1 \*(Dt "GNU grep 3.11" Användarkommandon
.
.if !\w|\*(lq| \{\
.\" groff an-old.tmac does not seem to be in use, so define lq and rq.
. ie \n(.g \{\
. ds lq \(lq\"
. ds rq \(rq\"
. \}
. el \{\
. ds lq ``
. ds rq ''
. \}
.\}
.
.if !\w|\*(la| \{\
.\" groff an-ext.tmac does not seem to be in use, so define the parts of
.\" it that are used below. For a copy of groff an-ext.tmac, please see:
.\" https://git.savannah.gnu.org/cgit/groff.git/plain/tmac/an-ext.tmac
.\" --- Start of lines taken from groff an-ext.tmac
.
.\" Check whether we are using grohtml.
.nr mH 0
.if \n(.g \
. if '\*(.T'html' \
. nr mH 1
.
.
.\" Map mono-width fonts to standard fonts for groff's TTY device.
.if n \{\
. do ftr CR R
. do ftr CI I
. do ftr CB B
.\}
.
.\" groff has glyph entities for angle brackets.
.ie \n(.g \{\
. ds la \(la\"
. ds ra \(ra\"
.\}
.el \{\
. ds la <\"
. ds ra >\"
. \" groff's man macros control hyphenation with this register.
. nr HY 1
.\}
.
.\" Start URL.
.de UR
. ds m1 \\$1\"
. nh
. if \\n(mH \{\
. \" Start diversion in a new environment.
. do ev URL-div
. do di URL-div
. \}
..
.
.
.\" End URL.
.de UE
. ie \\n(mH \{\
. br
. di
. ev
.
. \" Has there been one or more input lines for the link text?
. ie \\n(dn \{\
. do HTML-NS ""
. \" Yes, strip off final newline of diversion and emit it.
. do chop URL-div
. do URL-div
. do HTML-NS
. \}
. el \
. do HTML-NS "\\*(m1"
\&\\$*\"
. \}
. el \
\\*(la\\*(m1\\*(ra\\$*\"
.
. hy \\n(HY
..
.
.
.\" Start email address.
.de MT
. ds m1 \\$1\"
. nh
. if \\n(mH \{\
. \" Start diversion in a new environment.
. do ev URL-div
. do di URL-div
. \}
..
.
.
.\" End email address.
.de ME
. ie \\n(mH \{\
. br
. di
. ev
.
. \" Has there been one or more input lines for the link text?
. ie \\n(dn \{\
. do HTML-NS ""
. \" Yes, strip off final newline of diversion and emit it.
. do chop URL-div
. do URL-div
. do HTML-NS
. \}
. el \
. do HTML-NS "\\*(m1"
\&\\$*\"
. \}
. el \
\\*(la\\*(m1\\*(ra\\$*\"
.
. hy \\n(HY
..
.\" --- End of lines taken from groff an-ext.tmac
.\}
.
.hy 0
.
.SH NAMN
grep, egrep, fgrep, rgrep — skriv ut rader som matchar mönster
.
.SH SYNOPSIS
\fBgrep\fP [\fIFLAGGA\fP…]\& \fIMÖNSTER\fP [\fIFIL\fP…]
.br
\fBgrep\fP [\fIflagga\fP…]\& \fB\-e\fP \fIMÖNSTER\fP \&…\& [\fIFIL\fP…]
.br
\fBgrep\fP [\fIFLAGGA\fP…]\& \fB\-f\fP \fIMÖNSTERFIL\fP \&…\& [\fIFIL\fP…]
.
.SH BESKRIVNING
\fBgrep\fP söker efter \fIMÖNSTER\fP i varje \fIFIL\fP. \fIMÖNSTER\fP är en eller flera
mönster separerade av nyradstecken, och \fBgrep\fP skriver ut varje rad som
matchar ett mönster. Typiskt skall \fIMÖNSTER\fP omges av citationstecken när
\fBgrep\fP används i ett skalkommando.
.PP
En \fIFIL\fP som är \*(rq\fB\-\fP\*(rq står för standard in. Om ingen \fIFIL\fP anges
undersöker rekursiva sökningar arbetskatalogen och icke\-rekursiva sökningar
läser från standard in.
.PP
Debian inkluderar även variantprogrammen \fBegrep\fP, \fBfgrep\fP och
\fBrgrep\fP. Dessa program är desamma som \fBgrep\ \-E\fP, \fBgrep\ \-F\fP respektive
\fBgrep\ \-r\fP. 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 \fBgrep\fP med den
relaterade flaggan istället.
.
.SH FLAGGOR
.SS "Allmän programinformation"
.TP
\fB\-\^\-help\fP
Skriv ut ett användningsmeddelande och avsluta.
.TP
\fB\-V\fP, \fB\-\^\-version\fP
Skriv ut \fBgrep\fPs versionsnummer och avsluta.
.SS Mönstersyntax
.TP
\fB\-E\fP, \fB\-\^\-extended\-regexp\fP
Tolka \fIMÖNSTER\fP som utökade reguljära uttryck, (URU:er, se nedan).
.TP
\fB\-F\fP, \fB\-\^\-fixed\-strings\fP
Tolka \fIMÖNSTER\fP som fasta strängar, inte reguljära uttryck.
.TP
\fB\-G\fP, \fB\-\^\-basic\-regexp\fP
Tolka \fIMÖNSTER\fP som grundläggande reguljära uttryck (GRU:er, se
nedan). Detta är standardläget.
.TP
\fB\-P\fP, \fB\-\^\-perl\-regexp\fP
Tolka \fIMÖNSTER\fP som Perl\-kompatibla reguljära uttryck (PKRU:er). Denna
flagga är experimentell när den kombineras med flaggan \fB\-z\fP
(\fB\-\^\-null\-data\fP), och \fBgrep \-P\fP kan varna för oimplementerade funktioner.
.SS Matchningsstyrning
.TP
\fB\-e\fP\fI MÖNSTER\fP,\fB \-\^\-regexp=\fP\fIMÖNSTER\fP
Använd \fIMÖNSTER\fP som mönster. Om denna flagga används flera gånger eller
kombineras med flaggan \fB\-f\fP (\fB\-\^\-file\fP), sök efter alla givna
mönster. Denna flagga kan användas för att skydda ett mönster som börjar med
\&\*(rq\-\*(rq.
.TP
\fB\-f\fP\fI FIL\fP,\fB \-\^\-file=\fP\fIFIL\fP
Hämta mönster från \fIFIL\fP, ett per rad. Om denna flagga används flera gånger
eller kombineras med flaggan \fB\-e\fP (\fB\-\^\-regexp\fP), sök efter alla givna
mönster. En tom fil innehåller noll mönster, och matchar därför
ingenting. Om \fIFIL\fP är \fB\-\fP, läs mönster från standard in.
.TP
\fB\-i\fP, \fB\-\^\-ignore\-case\fP
Ignorera skiftlägesdistinktioner i mönster och indata, så att bokstäver som
skiljer endast i skiftläge matchar varandra.
.TP
\fB\-\^\-no\-ignore\-case\fP
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 \fB\-i\fP, för att annullera dess effekt eftersom de två
flaggorna åsidosätter varandra.
.TP
\fB\-v\fP, \fB\-\^\-invert\-match\fP
Invertera betydelsen hos matchningen, för att välja rader som inte matchar.
.TP
\fB\-w\fP, \fB\-\^\-word\-regexp\fP
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
\fB\-x\fP anges.
.TP
\fB\-x\fP, \fB\-\^\-line\-regexp\fP
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 \fB^\fP och \fB$\fP.
.SS "Allmän utmatningsstyrning"
.TP
\fB\-c\fP, \fB\-\^\-count\fP
Utelämna normal utdata; skriv istället antalet matchade rader för varje
indatafil. Med flaggan \fB\-v\fP, \fB\-\^\-invert\-match\fP (se ovan), räkna rader som
inte matchar.
.TP
\fB\-\^\-color\fP[\fB=\fP\fINÄR\fP], \fB\-\^\-colour\fP[\fB=\fP\fINÄR\fP]
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 \fBGREP_COLORS\fP. \fINÄR\fP är
\fBnever\fP, \fBalways\fP eller \fBauto\fP.
.TP
\fB\-L\fP, \fB\-\^\-files\-without\-match\fP
Utelämna normal utdata; skriv istället namnen på varje indatafil från vilken
ingen utdata normalt skulle ha skrivits.
.TP
\fB\-l\fP, \fB\-\^\-files\-with\-matches\fP
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.
.TP
\fB\-m\fP\fI ANT\fP,\fB \-\^\-max\-count=\fP\fIANT\fP
Sluta läsa en fil efter \fIANT\fP matchande rader. Om \fIANT\fP är noll slutar
\fBgrep\fP omedelbart utan att läsa indata. Ett \fIANT\fP på \-1 behandlas som
oändligheten och \fBgrep\fP slutar inte; detta är standardläget. Om indata är
standard in från en normal fil, och \fIANT\fP matchande rader skrivits,
säkerställer \fBgrep\fP 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 \fBgrep\fP stannar efter \fINUM\fP matchande rader
skriver den ut eventuella efterföljande sammanhangsrader. När flaggan \fB\-c\fP
eller \fB\-\^\-count\fP också används skriver \fBgrep\fP inte ut ett antal större än
\fIANT\fP. När flaggan \fB\-v\fP eller \fB\-\^\-invert\-match\fP också används stannar
\fBgrep\fP efter att ha skrivit ut \fIANT\fP rader som inte matchar.
.TP
\fB\-o\fP, \fB\-\^\-only\-matching\fP
Skriv bara ut de matchande (icke\-tomma) delarna av en matchande rad, med
varje sådan del på en separat utskriftsrad.
.TP
\fB\-q\fP, \fB\-\^\-quiet\fP, \fB\-\^\-silent\fP
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 \fB\-s\fP
eller \fB\-\^\-no\-messages\fP.
.TP
\fB\-s\fP, \fB\-\^\-no\-messages\fP
Utelämna felmeddelanden om filer som inte finns eller är oläsbara.
.SS "Styrning av prefix på utmatningsrader"
.TP
\fB\-b\fP, \fB\-\^\-byte\-offset\fP
Skriv ut det 0\-baserade byteavståndet inom indatafilen före varje rad med
utdata. Om \fB\-o\fP (\fB\-\^\-only\-matching\fP) anges, skriv då avståndet till den
matchande delen själv.
.TP
\fB\-H\fP, \fB\-\^\-with\-filename\fP
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.
.TP
\fB\-h\fP, \fB\-\^\-no\-filename\fP
Utelämna prefixen med filnamn i utdata. Detta är standard när det endast
finns en fil (eller standard in) att söka i.
.TP
\fB\-\^\-label=\fP\fIETIKETT\fP
Visa indata som faktiskt kommer från standard in som om den kom från filen
\fIETIKETT\fP. Detta kan vara användbart för kommandon som transformerar en
fils innehåll före sökningen, t.ex., \fBgzip \-cd apa.gz | grep \-\^\-label=apa \-H 'något mönster'\fP. Se även flaggan \fB\-H\fP.
.TP
\fB\-n\fP, \fB\-\^\-line\-number\fP
Prefixa varje utdatarad med det 1\-baserade radnumret inom sin indatafil.
.TP
\fB\-T\fP, \fB\-\^\-initial\-tab\fP
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: \fB\-H\fP, \fB\-n\fP och \fB\-b\fP. 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.
.TP
\fB\-Z\fP, \fB\-\^\-null\fP
Skriv ut en nollbyte (ASCII\-tecknet \fBNUL\fP) istället för tecknet som normalt
följer efter ett filnamn. Till exempel skriver \fBgrep \-lZ\fP 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 \fBfind \-print0\fP,
\fBperl \-0\fP, \fBsort \-z\fP och \fBxargs \-0\fP för att bearbeta godtyckliga filnamn,
även sådana som innehåller nyradstecken.
.SS "Styrning av sammanhangsrader"
.TP
\fB\-A\fP\fI ANT\fP,\fB \-\^\-after\-context=\fP\fIANT\fP
Skriv \fIANT\fP efterföljande sammanhangsrader efter matchande rader. Skriver
en rad som innehåller en gruppseparator (\fB\-\^\-\fP) mellan intilliggande
grupper med matchningar. Med flaggan \fB\-o\fP eller \fB\-\^\-only\-matching\fP har
detta ingen effekt och en varning ges.
.TP
\fB\-B\fP\fI ANT\fP,\fB \-\^\-before\-context=\fP\fIANT\fP
Skriv \fIANT\fP inledande sammanhangsrader före matchande rader. Skriver en rad
som innehåller en gruppseparator (\fB\-\^\-\fP) mellan intilliggande grupper med
matchningar. Med flaggan \fB\-o\fP eller \fB\-\^\-only\-matching\fP har detta ingen
effekt och en varning ges.
.TP
\fB\-C\fP\fI ANT\fP,\fB \-\fP\fIANT\fP,\fB \-\^\-context=\fP\fIANT\fP
Skriv \fIANT\fP sammanhangsrader i utdata. Skriver en rad som innehåller en
gruppseparator (\fB\-\^\-\fP) mellan intilliggande grupper med matchningar. Med
flaggan \fB\-o\fP eller \fB\-\^\-only\-matching\fP har detta ingen effekt och en
varning ges.
.TP
\fB\-\^\-group\-separator=\fP\fISEP\fP
När \fB\-A\fP, \fB\-B\fP eller \fB\-C\fP används, skriv ut \fISEP\fP istället för \fB\-\^\-\fP
mellan grupper av rader.
.TP
\fB\-\^\-no\-group\-separator\fP
När \fB\-A\fP, \fB\-B\fP eller \fB\-C\fP används, skriv inte ut någon separator mellan
grupper av rader.
.SS "Fil\- och katalogval"
.TP
\fB\-a\fP, \fB\-\^\-text\fP
Bearbeta en binärfil som om den vore text; detta är ekvivalent med flaggan
\fB\-\^\-binary\-files=text\fP.
.TP
\fB\-\^\-binary\-files=\fP\fITYP\fP
Om en fils data eller metadata indikerar att filen innehåller binärdata,
anta att filen har typen \fITYP\fP. 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 \fB\-z\fP inte ges.
.IP
Som standard är \fITYP\fP \fBbinary\fP, och \fBgrep\fP 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 \fBgrep\fP eventuell
utdata med ett meddelande till standard fel som säger att en binär fil
matchar.
.IP
Om \fITYP\fP är \fBwithout\-match\fP antar \fBgrep\fP när den upptäcker binär indata
som är null att resten av filen inte matchar; detta är ekvivalent med
flaggan \fB\-I\fP.
.IP
Om \fITYP\fP är \fBtext\fP bearbetar \fBgrep\fP en binärfil som om den vore text;
detta är ekvivalent med flaggan \fB\-a\fP.
.IP
När \fITYP\fP är \fBbinary\fP kan \fBgrep\fP hantera icke\-textbyte:ar som
radavslutare även utan flaggan \fB\-z\fP. Detta betyder att val av \fBbinary\fP
eller \fBtext\fP kan påverka huruvida ett mönster matchar en fil. Till exempel,
när \fITYP\fP är \fBbinary\fP kan \fBq$\fP matcha \fBq\fP omedelbart följt av en
null\-byte, medan detta inte matchar när \fITYP\fP är \fBtext\fP. Omvänt, när
\fITYP\fP är \fBbinary\fP kan mönstret \fB.\&\fP (punkt) inte matcha en null\-byte.
.IP
\fIVarning:\fP flaggan \fB\-a\fP 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 \fB\-a\fP eller att
sätta \fBLC_ALL='C'\fP i miljön, för att hitta fler matchningar även om
matchningarna inte är säkra att visas direkt.
.TP
\fB\-D\fP\fI ÅTGÄRD\fP,\fB \-\^\-devices=\fP\fIÅTGÄRD\fP
Om en indatafil är en enhet (device), FIFO eller ett uttag (socket), använd
då \fIÅTGÄRD\fP för att bearbeta den. Som standard är \fIÅTGÄRD\fP \fBread\fP, vilket
betyder att enheten läses som om den vore en vanlig fil. Om \fIÅTGÄRD\fP är
\fBskip\fP hoppas enheter tyst över.
.TP
\fB\-d\fP\fI ÅTGÄRD\fP,\fB \-\^\-directories=\fP\fIÅTGÄRD\fP
Om en indatafil är en katalog, använd \fIÅTGÄRD\fP för att bearbeta den. Som
standard är \fIÅTGÄRD\fP \fBread\fP, d.v.s., läs kataloger som om de vore vanliga
filer. Om \fIÅTGÄRD\fP är \fBskip\fP, hoppa tyst över kataloger. Om \fIÅTGÄRD\fP är
\fBrecurse\fP, 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 \fB\-r\fP.
.TP
\fB\-\^\-exclude=\fP\fIGLOB\fP
Hoppa över eventuella kommandoradsfiler med ett namnsuffix som matchar
mönstret \fIGLOB\fP 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 (\fB/\fP) i namnet. Vid rekursiv sökning, hoppa
över eventuella underfiler vars basnamn matchar \fIGLOB\fP; basnamnet är delen
efter det sista snedstrecket. Ett mönster kan använda \fB*\fP, \fB?\fP och
\fB[\fP…\fB]\&\fP som jokertecken, och \fB\e\fP för att skydda ett literalt
jokertecken eller omvänt snedstreck.
.TP
\fB\-\^\-exclude\-from=\fP\fIFIL\fP
Hoppa över filer vars basnamn matchar något av filnamns\-globbarna som läses
från \fIFIL\fP (med användning av jokerteckenmatchning som beskrivs under
\fB\-\^\-exclude\fP).
.TP
\fB\-\^\-exclude\-dir=\fP\fIGLOB\fP
Hoppa över eventuella kommandoradskataloger med ett namnsuffix som matchar
mönstret \fIGLOB\fP. Vid rekursiv sökning, hoppa över eventuella underkataloger
vars basnamn matchar \fIGLOB\fP. Ignorera eventuella överflödiga avslutande
snedstreck i \fIGLOB\fP.
.TP
\fB\-I\fP
Bearbeta en binär fil som om den inte innehöll någon matchande data; detta
är ekvivalent med flaggan \fB\-\^\-binary\-files=without\-match\fP.
.TP
\fB\-\^\-include=\fP\fIGLOB\fP
Sök endast i filer vars basnamn matchar \fIGLOB\fP (med användning av
jokerteckenmatchning som beskrivs under \fB\-\^\-exclude\fP). Om motstridiga
flaggor \fB\-\^\-include\fP och \fB\-\^\-exclude\fP ges vinner den sista som
matchar. Om ingen flagga \fB\-\^\-include\fP eller \fB\-\^\-exclude\fP matchar
inkluderas en fil om inte den första sådana flaggan är \fB\-\^\-include\fP.
.TP
\fB\-r\fP, \fB\-\^\-recursive\fP
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 \fBgrep\fP i arbetskatalogen. Detta är ekvivalent med flaggan \fB\-d recurse\fP.
.TP
\fB\-R\fP, \fB\-\^\-dereference\-recursive\fP
Läs alla filer under varje katalog, rekursivt. Följ alla symboliska länkar,
till skillnad mot \fB\-r\fP.
.SS "Andra flaggor"
.TP
\fB\-\^\-line\-buffered\fP
Använd radbuffring av utdata. Detta kan medföra en prestandakostnad.
.TP
\fB\-U\fP, \fB\-\^\-binary\fP
Behandla filerna som binära. Som standard, under MS\-DOS och MS\-Windows
gissar \fBgrep\fP huruvida en fil är text eller binär så som det beskrivs för
flaggan \fB\-\^\-binary\-files\fP. Om \fBgrep\fP avgör att filen är en textfil tar
den bort CR\-tecknen från filens originalinnehåll (för att reguljära uttryck
med \fB^\fP och \fB$\fP skall fungera korrekt). Genom att ange \fB\-U\fP å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.
.TP
\fB\-z\fP, \fB\-\^\-null\-data\fP
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 \fB\-Z\fP eller \fB\-\^\-null\fP kan denna flagga användas med kommandon
som \fBsort \-z\fP för att bearbeta godtyckliga filnamn.
.
.SH "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.
.PP
\fBgrep\fP förstår tre olika versioner av syntax för reguljära uttryck:
\&\*(rqgrundläggande\*(rq (GRU), \*(rqutökade\*(rq (URU) och \*(rqperl\*(rq (PKRU). I GNU
\fBgrep\fP är grundläggande och utökade reguljära uttryck blott olika
notationer för samma mönstermatchningsfunktionalitet. I andra
implementationer är grundläggande reguljära uttryck vanligen mindre
kraftfulla än utökade, även om det i vissa fall är tvärtom. 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 har annan funktionalitet, och dokumenteras i \fBpcre2syntax\fP(3) och
\fBpcre2pattern\fP(3), men fungerar bara om stöd för PKRU är aktiverat.
.PP
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.
.PP
Punkten \fB.\&\fP matchar alla enstaka tecken. Det är inte specificerat
huruvida det matchar ett kodningsfel.
.SS "Teckenklasser och hakparentesuttryck"
Ett \fIhakparentesuttryck\fP är en lista av tecken omgivna av \fB[\fP och
\fB]\fP. Det matchar vilket enstaka tecken som helst som finns i listan. Om det
första tecknet i listan är en cirkumflex \fB^\fP då matchar det vilket tecken
som helst som \fIinte\fP finns i listan; det är ospecificerat huruvida det
matchar ett kodningsfel. Till exempel matchar det reguljära uttrycket
\fB[0123456789]\fP en godtycklig siffra.
.PP
Inom ett hakparentesuttryck består ett \fIintervalluttryck\fP 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 \fB[a\-d]\fP ekvivalent med \fB[abcd]\fP; det kan vara ekvivalent med
\fB[aAbBcCd]\fP, till exempel. För att få den traditionella tolkningen av
hakparentesuttryck kan man använda lokalen C genom att sätta miljövariabeln
\fBLC_ALL\fP till värdet \fBC\fP.
.PP
Slutligen är vissa namngivna klasser av tecken fördefinierade inom
hakparentesuttryck enligt följande. Deras namn är självförklarande, och de
är \fB[:alnum:]\fP, \fB[:alpha:]\fP, \fB[:blank:]\fP, \fB[:cntrl:]\fP, \fB[:digit:]\fP,
\fB[:graph:]\fP, \fB[:lower:]\fP, \fB[:print:]\fP, \fB[:punct:]\fP, \fB[:space:]\fP,
\fB[:upper:]\fP och \fB[:xdigit:]\fP. Till exempel betyder \fB[[:alnum:]]\fP
teckenklassen med siffror och bokstäver i den aktuella lokalen. I lokalen C
och teckenuppsättningskodningen ASCII är detta detsamma som
\fB[0\-9A\-Za\-z]\fP. (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
\fB]\fP, placera det först i listan. På motsvarande sätt, för att inkludera ett
ordagrant \fB^\fP, placera det var som helst utom först. Slutligen, för att
inkludera ett bokstavligt \fB\-\fP, placera det sist.
.SS Förankring
Circumflex \fB^\fP och dollartecknet \fB$\fP är metatecken som matchar den tomma
strängen i början respektive slutet av en rad.
.SS "Tecknet omvänt snedstreck och specialuttryck"
Symbolerna \fB\e<\fP och \fB\e>\fP matchar den tomma strängen i början
respektive slutet av ett ord. Symbolen \fB\eb\fP matchar den tomma strängen vid
gränsen av ett ord, och \fB\eB\fP matchar den tomma strängen förutsatt att det
\fIinte\fP är vid gränsen av ett ord. Symbolen \fB\ew\fP är en synonym för
\fB[_[:alnum:]]\fP och \fB\eW\fP är en synonym för \fB[^_[:alnum:]]\fP.
.SS Upprepning
Ett reguljärt uttryck kan följas av en eller flera upprepningsoperatorer:
.PD 0
.TP
\fB?\fP
Föregående element är valfritt och matchar högst en gång.
.TP
\fB*\fP
Föregående element kommer matchas noll eller flera gånger.
.TP
\fB+\fP
Föregående element kommer matchas en eller flera gånger.
.TP
\fB{\fP\fIn\fP\fB}\fP
Föregående element matchas exakt \fIn\fP gånger.
.TP
\fB{\fP\fIn\fP\fB,}\fP
Föregående element matchas \fIn\fP eller fler gånger.
.TP
\fB{,\fP\fIm\fP\fB}\fP
Föregående element matchas högst \fIm\fP gånger. Detta är en GNU\-utvidgning.
.TP
\fB{\fP\fIn\fP\fB,\fP\fIm\fP\fB}\fP
Föregående element matchas åtminstone \fIn\fP gånger, men inte mer än \fIm\fP
gånger.
.PD
.SS 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.
.SS Alternativ
Två reguljära uttryck kan sättas samman med infixoperatorn \fB|\fP; det
resulterande reguljära uttrycket matchar en sträng som matchar endera av de
alternativa uttrycken.
.SS 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.
.SS "Bakåtreferenser och deluttryck"
The back\-reference \fB\e\fP\fIn\fP \&, where \fIn\fP is a single digit, matches the
substring previously matched by the \fIn\fPth parenthesized subexpression of
the regular expression.
.SS "Grundläggande gentemot utökade reguljära uttryck"
I grundläggande reguljära uttryck förlorar metatecknen \fB?\fP, \fB+\fP, \fB{\fP,
\fB|\fP, \fB(\fP och \fB)\fP sina speciella betydelser; använd istället versionen med
omvänt snedstreck \fB\e?\fP, \fB\e+\fP, \fB\e{\fP, \fB\e|\fP, \fB\e(\fP och \fB\e)\fP.
.
.SH SLUTSTATUS
Normalt är slutstatusen 0 om en rad valts, 1 om inga rader valts och 2 om
ett fel uppstod. Dock, om flaggan \fB\-q\fP eller \fB\-\^\-quiet\fP eller
\fB\-\^\-silent\fP används och en rad valts är slutstatus 0 även om ett fel
uppstod.
.
.SH MILJÖ
Beteendet hos \fBgrep\fP påverkas av följande miljövariabler.
.PP
Lokalen för kategorin \fBLC_\fP\fIapa\fP anges genom att undersöka de tre
miljövariablerna \fBLC_ALL\fP, \fBLC_\fP\fIapa\fP, \fBLANG\fP, i den ordningen. Den
första av dessa variabler som är satt definierar lokalen. Till exempel, om
\fBLC_ALL\fP inte är satt, men \fBLC_MESSAGES\fP är satt till \fBpt_BR\fP, då används
lokalen brasiliansk portugisiska till kategorin \fBLC_MESSAGES\fP. Lokalen C
används om ingen av dessa miljövariabler är satt, om lokalkatalogen inte är
installerad eller om \fBgrep\fP inte kompilerades med stöd för nationella språk
(NLS). Skalkommandot \fBlocale \-a\fP listar lokaler som för närvarande finns
tillgängliga.
.TP
\fBGREP_COLORS\fP
Styr hur flaggan \fB\-\^\-color\fP markerar utdata. Dess värde är en
kolonseparerad lista av förmågor vilken som standard är
\fBms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36\fP med de booleanska
förmågorna \fBrv\fP och \fBne\fP utelämnade (d.v.s. falska). De förmågor som
stödjs är som följer.
.RS
.TP
\fBsl=\fP
SGR\-delsträng för hela valda rader (d.v.s., matchande rader när
kommandoradsflaggan \fB\-v\fP inte är med, eller icke\-matchande rader när \fB\-v\fP
anges). Om däremot den booleska förmågan \fBrv\fP och kommandoradsflaggan \fB\-v\fP
båda anges gäller den för sammanhangsmatchande rader
istället. Standardvärdet är tomt (d.v.s., terminalens standardfärgpar).
.TP
\fBcx=\fP
SGR\-delsträng för hela sammanhangsrader (d.v.s., icke matchande rader när
kommandoradsflaggan \fB\-v\fP inte är med, eller matchande rader när \fB\-v\fP
anges). Om däremot den booleska förmågan \fBrv\fP och kommandoradsflaggan \fB\-v\fP
båda anges gäller den för valda icke\-matchande rader
istället. Standardvärdet är tomt (d.v.s., terminalens standardfärgpar).
.TP
\fBrv\fP
Booleskt värde som inverterar (byter) betydelsen på förmågorna \fBsl=\fP och
\fBcx=\fP när kommandoradsflaggan \fB\-v\fP är med. Standardvärdet är falskt
(d.v.s., förmågan utelämnas).
.TP
\fBmt=01;31\fP
SGR\-delsträng för matchande icke\-tom text i matchande rader (d.v.s., en vald
rad när när kommandoradsflaggan \fB\-v\fP inte är med, eller en sammanhangsrad
när \fB\-v\fP anges). Att sätta denna är ekvivalent med att sätta både \fBms=\fP
och \fBmc=\fP samtidigt till samma värde. Standardvärdet är röd fet text över
den aktuella radbakgrunden.
.TP
\fBms=01;31\fP
SGR\-delsträng för matchande icke\-tom text valda rader. (Detta används bara
när kommandoradsflaggan \fB\-v\fP inte är med.) Effekten av förmågan \fBsl=\fP
(eller \fBcx=\fP om \fBrv\fP) är fortfarande aktiv när detta slår
till. Standardvärdet är fet röd text i förgrunden över den aktuella
radbakgrunden.
.TP
\fBmc=01;31\fP
SGR\-delsträng för matchande icke\-tom text i en sammanhangsrad. (Detta
används bara när kommandoradsflaggan \fB\-v\fP anges.) Effekten av förmågan
\fBcx=\fP (eller \fBsl=\fP om \fBrv\fP) är fortfarande aktiv när detta slår
till. Standardvärdet är fet röd text i förgrunden över den aktuella
radbakgrunden.
.TP
\fBfn=35\fP
SGR\-delsträng för filnamnsprefix på en innehållsrad. Standardvärdet är
magenta text i förgrunden över den aktuella radbakgrunden.
.TP
\fBln=32\fP
SGR\-delsträng för radnummerprefix på en innehållsrad. Standardvärdet är grön
text i förgrunden över terminalens standardbakgrund.
.TP
\fBbn=32\fP
SGR\-delsträng för byteavstånd på en innehållsrad. Standardvärdet är grön
text i förgrunden över terminalens standardbakgrund.
.TP
\fBse=36\fP
SGR\-delsträng för separatorer som infogas mellan valda radfält (\fB:\fP),
mellan kontextradsfält, (\fB\-\fP), och mellan grupper av intilliggande rader
när nollskild sammanhang anges (\fB\-\^\-\fP). Standardvärdet är cyan text i
förgrunden över terminalens standardbakgrund.
.TP
\fBne\fP
Booleskt värde som förhindrar tömning till slutet av raden med Erase in Line
(EL) to Right (\fB\e33[K\fP) 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 \fBback_color_erase\fP
(\fBbce\fP) 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).
.PP
Obervera att booleska förmågor inte har någon del \fB=\fP…. De utelämnas
(d.v.s., falska) som standard och blir sanna när de anges.
.PP
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. \fBgrep\fP tar hand om att sätta samman
resultatet till en fullständig SGR\-sekvens (\fB\e33[\fP…\fBm\fP). Vanliga värden
att sätta samman innefattar \fB1\fP för fetstil, \fB4\fP för understrykning, \fB5\fP
för blink, \fB7\fP för invers, \fB39\fP för standardförgrundsfärg, \fB30\fP till
\fB37\fP för förgrundsfärger, \fB90\fP till \fB97\fP för 16\-färgersläge för
förgrundsfärger, \fB38;5;0\fP till \fB38;5;255\fP för 88\-färgersläges och
256\-färgersläges förgrundsfärger, \fB49\fP för standardbakgrundsfärg, \fB40\fP
till \fB47\fP för bakgrundsfärger, \fB100\fP till \fB107\fP för 16\-bitarsläges
bakgrundsfärger, och \fB48;5;0\fP till \fB48;5;255\fP för 88\-färgersläges och
256\-färgersläges bakgrundsfärger.
.RE
.TP
\fBLC_ALL\fP, \fBLC_COLLATE\fP, \fBLANG\fP
Dessa variabler anger lokalen för kategorin \fBLC_COLLATE\fP, vilken avgör
sorteringsordningen som används för att tolka intervalluttryck som \fB[a\-z]\fP.
.TP
\fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLANG\fP
Dessa variabler anger lokalen för kategorin \fBLC_CTYPE\fP, 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.
.TP
\fBLC_ALL\fP, \fBLC_MESSAGES\fP, \fBLANG\fP
Dessa variabler anger lokalen för kategorin \fBLC_MESSAGES\fP, vilken avgör
språket som \fBgrep\fP använder för meddelanden. Standardlokalen C använder
meddelanden på amerikansk engelska.
.TP
\fBPOSIXLY_CORRECT\fP
Om satt beter sig \fBgrep\fP som POSIX kräver; annars beter sig \fBgrep\fP 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 \*(rqillegal\*(rq, men eftersom de inte i egentlig
mening strider mot lagen är standard att diagnostisera dem som \*(rqinvalid\*(rq
(ogiltig).
.
.SH NOTERINGAR
Denna manualsida underhålls endast sporadiskt; den fullständiga
dokumentationen är ofta mer aktuell.
.
.SH COPYRIGHT
Copyright 1998\-2000, 2002, 2005\-2023 Free Software Foundation, Inc.
.PP
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.
.
.SH FEL
.SS "Rapportering av fel"
E\-posta felrapporter till
.MT bug\-grep@gnu.org
felrapporteringsadressen
.ME .
Ett
.UR https://lists.gnu.org/mailman/listinfo/bug\-grep
e\-postarkiv
.UE
och en
.UR https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep
felärendehanterare
.UE
finns tillgängliga. Rapportera fel på översättningen till
.MT tp\-sv@listor.tp\-sv.se
den svenska översättningslistan
.ME
.
.SS "Kända fel"
Höga upprepningsantal i konstruktionen \fB{\fP\fIn\fP\fB,\fP\fIm\fP\fB}\fP kan få \fBgrep\fP
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 \fBgrep\fP får slut på
minne.
.PP
Bakåtreferenser är mycket långsamma, och kan behöva exponentiell tid.
.
.SH EXEMPEL
Följande exempel skriver ut platsen och innehållet för alla rader som
innehåller \*(rqf\*(rq och slutar i \*(rq.c\*(rq, i alla filer i den aktuella katalogen
vars namn innehåller \*(rqg\*(rq och slutar på \*(rq.h\*(rq. Flaggan \fB\-n\fP skriver ut
radnummer, argumentet \fB\-\-\fP hanterar expansioner av \*(rq*g*.h\*(rq som börjar med
\&\*(rq\-\*(rq 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 \*(rq*g*.h\*(rq.
.PP
.in +2n
.EX
$ \fBgrep\fP \-n \-\- 'f.*\e.c$' *g*.h /dev/null
argmatch.h:1:/* definitions and prototypes for argmatch.c
.EE
.in
.PP
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.
.
.SH "SE ÄVEN"
.SS "Reguljära manualsidor"
\fBawk\fP(1), \fBcmp\fP(1), \fBdiff\fP(1), \fBfind\fP(1), \fBperl\fP(1), \fBsed\fP(1),
\fBsort\fP(1), \fBxargs\fP(1), \fBread\fP(2), \fBpcre2\fP(3), \fBpcre2syntax\fP(3),
\fBpcre2pattern\fP(3), \fBterminfo\fP(5), \fBglob\fP(7), \fBregex\fP(7)
.SS "Fullständig dokumentation"
En
.UR https://www.gnu.org/software/grep/manual/
fullständig manual
.UE
finns tillgänglig. Om programmen \fBinfo\fP och \fBgrep\fP är korrekt
installerade på sajten skall kommandot
.IP
\fBinfo grep\fP
.PP
ge dig tillgång till den kompletta manualen.
.
.\" Work around problems with some troff -man implementations.
.br
.
.\" Format for Emacs-maintained Dt string defined at this file's start.
.\" Local variables:
.\" time-stamp-format: "%:y-%02m-%02d"
.\" End:
.PP
.SH ÖVERSÄTTNING
Den svenska översättningen av denna manualsida skapades av
Göran Uddeborg
.
.PP
Denna översättning är fri dokumentation; läs
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License Version 3
.UE
eller senare för upphovsrättsvillkor. Vi tar INGET ANSVAR.
.PP
Om du hittar fel i översättningen av denna manualsida,
skicka ett mail till
.MT Tp-sv@listor.tp-sv.se
.ME .