Skip navigation

Kimenetek szűrése minta alapján

grep, egrep

A beneteként kapott  inputból kiszűri azokat a sorokat, amelyek illeszkednek a paraméterében megadott mintára.

grep [KAPCSOLÓ]… MINTA [FÁJL]…
A MINTA keresése minden FÁJLBAN.
Példa: grep -i 'szia világ' menu.h main.c

Minta kiválasztása és értelmezése:
  -E, --extended-regexp     a MINTA kiterjesztett reguláris kifejezés
  -F, --fixed-strings       a MINTA új sorokkal elválasztott karakterláncok
                              halmaza
  -G, --basic-regexp        a MINTA alapvető reguláris kifejezés (alapeset)
  -P, --perl-regexp         a MINTA Perl reguláris kifejezés
  -e, --regexp=MINTA        a MINTA használata illesztésre
  -f, --file=FÁJL           a MINTA beolvasása a FÁJLBÓL
  -i, --ignore-case         a kis- és nagybetűk megegyeznek
  -w, --word-regexp         a MINTA csak egész szóra illeszkedik
  -x, --line-regexp         a MINTA csak egész sorra illeszkedik
  -z, --null-data           az adat sorai 0 bájtra végződnek, nem újsorra

Egyéb:
  -s, --no-messages         hibaüzenetek elnémítása
  -v, --invert-match        a nem illeszkedő sorok kiválogatása
  -V, --version             verzióinformációk kiírása és kilépés
      --help                ezen súgó kiírása és kilépés

Kimenet beállításai:
  -m, --max-count=SZÁM      megáll SZÁM kiválasztott sor után
  -b, --byte-offset         a kimenetben szerepel a sor helye is (bájteltolás)
  -n, --line-number         a kimenetben szerepel a sor száma is
      --line-buffered       kimenet kiürítése minden sor után
  -H, --with-filename       fájlnév kiírása a kimeneti sorokkal
  -h, --no-filename         a kimenetbe nem írja ki a fájlnév előtagot
      --label=CÍMKE         a CÍMKE kiírása fájlnévként a szabványos bemenet
                              használatakor
  -o, --only-matching       a sornak csak a MINTÁRA illeszkedő részét írja ki
  -q, --quiet, --silent     minden szokványos kimenet elhagyása
      --binary-files=TÍPUS  a bináris fájlokat adott TÍPUSÚNAK veszi, a TÍPUS
                              a „binary”, „text” vagy „without-match” egyike
  -a, --text                ugyanaz, mint a --binary-files=text
  -I                        equivalent to --binary-files=without-match
  -d, --directories=ACTION  how to handle directories;
                            ACTION is 'read', 'recurse', or 'skip'
  -D, --devices=ACTION      how to handle devices, FIFOs and sockets;
                            ACTION is 'read' or 'skip'
  -r, --recursive           like --directories=recurse
  -R, --dereference-recursive
                            likewise, but follow all symlinks
      --include=FILE_PATTERN
                            search only files that match FILE_PATTERN
      --exclude=FILE_PATTERN
                            skip files and directories matching FILE_PATTERN
      --exclude-from=FILE   skip files matching any file pattern from FILE
      --exclude-dir=PATTERN directories that match PATTERN will be skipped.
  -L, --files-without-match print only names of FILEs with no selected lines
  -l, --files-with-matches  print only names of FILEs with selected lines
  -c, --count               print only a count of selected lines per FILE
  -T, --initial-tab         make tabs line up (if needed)
  -Z, --null                print 0 byte after FILE name

Szövegkörnyezet beállításai:
  -B, --before-context=SZÁM SZÁM db. sor kiírása a találat előtti környezetből
  -A, --after-context=SZÁM  SZÁM db. sor kiírása a találat utáni környezetből
  -C, -- context=SZÁM       SZÁM darab sor kiírása a környezetből
  -NUM                      same as --context=NUM
      --group-separator=SEP use SEP as a group separator
      --no-group-separator  use empty string as a group separator
      --color[=WHEN],
      --colour[=WHEN]       use markers to highlight the matching strings;
                            WHEN is 'always', 'never', or 'auto'
  -U, --binary              do not strip CR characters at EOL (MSDOS/Windows)

Ha a FÁJL a '-', akkor a szabványos bemenetről olvas. Ha nincs megadva FÁJL,
rekurzív működéskor a '.' egyébként a '-' olvasása. Kettőnél kevesebb
FÁJL megadásakor a -h kapcsolót feltételezi. A kilépési érték:
0, ha van találat, egyébként 1; ha hiba történt és a -q nincs megadva: 2

Az egrep parancs ugyanígy használható.

Példa

Listázzuk ki azokat a fájlokat, amelyekben szerepel a png karaktersorozat!

[gabor@linux peldak]$ ls -l | grep png
-rwxrwxrwx. 1 gabor gabor 19679 febr  20 10.18 688px-Tee.svg.png

Hány txt fájl van a könyvtáramban?

[gabor@linux peldak]$ ls -l | grep -c txt
2