Grep: Skillnad mellan sidversioner

Från Wiki.linux.se - Svensk Linux Wiki
Hoppa till navigering Hoppa till sök
(Omdirigerar till grep(1))
Märke: Ny omdirigering
 
Rad 1: Rad 1:
== grep - Sök efter mönster i filer ==
#REDIRECT [[grep(1)]]
Kommandot `grep` används för att söka efter specifika mönster i filer i ett Unix-liknande operativsystem.
 
=== Syntax ===
grep [ALTERNATIV]... MÖNSTER [FIL]...
 
=== Beskrivning ===
Kommandot `grep` söker efter rader som matchar ett angivet mönster i en eller flera filer. Det skriver ut de rader som matchar mönstret till standardutgången.
 
=== Alternativ ===
Kommandot `grep` stöder många alternativ som kan användas för att justera hur sökningen utförs och hur resultaten visas:
 
* -A NUM, --after-context=NUM - Skriv ut NUM rader av kontext efter varje träff.
* -a, --text - Behandla binära filer som textfiler.
* -B NUM, --before-context=NUM - Skriv ut NUM rader av kontext före varje träff.
* -C NUM, --context=NUM - Skriv ut NUM rader av kontext före och efter varje träff.
* -c, --count - Skriv ut antalet matchande rader per fil.
* -D ACTION, --devices=ACTION - Hur man behandlar enheter; ACTION kan vara `read` eller `skip`.
* -d ACTION, --directories=ACTION - Hur man behandlar kataloger; ACTION kan vara `read`, `recurse` eller `skip`.
* -E, --extended-regexp - Tolka mönstret som ett utökat reguljärt uttryck.
* -e MÖNSTER, --regexp=MÖNSTER - Ange mönstret att söka efter.
* -F, --fixed-strings - Tolka mönstret som en lista med fasta strängar, separerade med ny rad.
* -f FIL, --file=FIL - Hämta mönster från filen FIL.
* -G, --basic-regexp - Tolka mönstret som ett grundläggande reguljärt uttryck (standard).
* -H, --with-filename - Skriv ut filnamnet före varje rad med en träff.
* -h, --no-filename - Skriv inte ut filnamnet före varje rad med en träff.
* --help - Visa hjälp och avsluta.
* -I - Ignorera binära filer.
* -i, --ignore-case - Ignorera skiftlägeskänslighet vid sökning.
* -L, --files-without-match - Skriv ut namnet på varje fil som inte innehåller några träffar.
* -l, --files-with-matches - Skriv ut namnet på varje fil som innehåller minst en träff.
* -m NUM, --max-count=NUM - Stoppa efter NUM träffar.
* -n, --line-number - Skriv ut radnumret före varje rad med en träff.
* -o, --only-matching - Skriv endast ut de delar av raderna som matchar mönstret.
* -q, --quiet, --silent - Skriv inte ut någonting, returnera endast exit-status.
* -R, -r, --recursive - Sök rekursivt i kataloger.
* -s, --no-messages - Undertryck felmeddelanden om icke-existerande eller oläsliga filer.
* -v, --invert-match - Skriv ut de rader som inte matchar mönstret.
* -w, --word-regexp - Matcha endast hela ord.
* -x, --line-regexp - Matcha endast hela rader.
* -Z, --null - Sätt null-byte som avgränsare efter filnamn.
 
=== Exempel ===
Här är några praktiska exempel som visar hur du kan använda `grep`-kommandot:
 
* För att söka efter ett mönster i en fil:
<code>
grep "mönster" fil.txt
</code>
 
* För att söka efter ett mönster i flera filer:
<code>
grep "mönster" fil1.txt fil2.txt
</code>
 
* För att ignorera skiftlägeskänslighet vid sökning:
<code>
grep -i "mönster" fil.txt
</code>
 
* För att visa radnummer för varje träff:
<code>
grep -n "mönster" fil.txt
</code>
 
* För att söka rekursivt i kataloger:
<code>
grep -r "mönster" katalog/
</code>
 
* För att visa antalet matchande rader:
<code>
grep -c "mönster" fil.txt
</code>
 
* För att skriva ut filnamn för varje träff:
<code>
grep -H "mönster" fil.txt
</code>
 
* För att skriva ut kontext före och efter varje träff:
<code>
grep -C 2 "mönster" fil.txt
</code>
 
* För att endast visa de delar av raderna som matchar mönstret:
<code>
grep -o "mönster" fil.txt
</code>
 
=== Skillnader mellan macOS och Linux ===
Det finns några viktiga skillnader att tänka på när man använder `grep`-kommandot på macOS jämfört med Linux:
 
* Standardinstallationer: På de flesta Linux-distributioner är `grep` en del av GNU coreutils, medan macOS använder BSD-versionen av `grep`. Detta innebär att vissa alternativ och beteenden kan skilja sig åt.
* Alternativ och funktioner: GNU `grep` (Linux) har fler alternativ och funktioner jämfört med BSD `grep` (macOS). Till exempel kan vissa avancerade alternativ vara specifika för GNU `grep`.
 
Här är några exempel som visar skillnaderna:
 
* På Linux kan du använda `grep --color` för att markera matchande text med färg:
<code>
grep --color "mönster" fil.txt
</code>
Detta alternativ kanske inte är tillgängligt på macOS.
 
* På Linux kan du använda `grep -P` för att använda Perl-kompatibla reguljära uttryck:
<code>
grep -P "mönster" fil.txt
</code>
Detta alternativ kanske inte är tillgängligt på macOS.
 
Det är alltid bra att konsultera `man`-sidan för `grep` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga.
 
=== Felsökning ===
Om du får ett felmeddelande när du använder `grep`, kontrollera följande:
 
* Att filen du försöker läsa faktiskt existerar.
* Att du har rättigheter att läsa filen.
* Att syntaxen för ditt kommando är korrekt. Kontrollera att du använder rätt alternativ och parametrar.
 
=== Se även ===
* [[egrep]] - Utökat grep med stöd för reguljära uttryck.
* [[fgrep]] - Fasta grep för att söka efter fasta strängar.
* [[awk]] - Ett språk för mönstermatchning och textbehandling.
* [[sed]] - Stream editor för att filtrera och transformera text.
 
=== Källor ===
* [https://www.gnu.org/software/grep/manual/grep.html GNU grep manual]
 
= Sidslut =
 
Det här är en maskinöversättning av linux kommando manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
<BR><BR>Tack till [https://datorhjalp.se Datorhjälp i Stockholm] som har sponsrat [https://linux.se Linux.se] med webserver.
 
[[Kategori:Linuxkommandon]]

Nuvarande version från 2 februari 2026 kl. 07.05

Omdirigering till: