Dokumentacja

edytuj
grep --help

lub

man grep 

Składnia

edytuj
grep options pattern input_file_names

Wersja

edytuj

W konsoli wpisujemy:[1]

grep -V

otrzymujemy (przykładowo):

grep (GNU grep) 2.14
Copyright (C) 2012 Free Software Foundation, Inc.
Licencja GPLv3+: GNU GPL wersja 3 albo późniejsza http://gnu.org/licenses/gpl.html
To jest wolne oprogramowanie: możesz je modyfikować i rozpowszechniać.
Autorzy NIE DAJĄ GWARANCJI w granicach dozwolonych prawem.

Napisany przez Mike'a Haertela (Mike Haertel) i innych, zobacz: http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS.

Użycie

edytuj

Znajdowanie tekstu w plikach

edytuj

1 słowo

edytuj
grep -R "width2" . 

Opis:

  • kropka oznacza aktualny katalog [2]
  • łańcuch "width2" określa co chcemy znaleźć
  • opcja R oznacza, że katalog przeszukujemy rekurencyjne [3][4]


Przykładowy wynik:


./p.c:double width2; // = width/2.0
./p.c:  double x = (i - width2) / height2;
./p.c:  width2 = width /2.0;
./p.c~:double width2; // = width/2.0
./p.c~:  double x = (i - width2) / height2;
./p.c~:  width2 = width /2.0;

Jeśli chcemy wyświetlić także numery linii to dodajemy opcje n:

grep -nR " width2" .


./p.c:9:double width2; // = width/2.0
./p.c:64:  double x = (i - width2) / height2;
./p.c:106:  width2 = width /2.0;
./p.c~:9:double width2; // = width/2.0
./p.c~:64:  double x = (i - width2) / height2;
./p.c~:106:  width2 = width /2.0;


Schemat:

grep -rnw '/path/to/somewhere/' -e "pattern"


znajdujemy 1 słowo ale bez drugiego słowa

edytuj

Chcemy:[5]

  • znaleźć słowo word1
  • bez słowa word2
  • w plikach cpp


  grep -nR "word1" *.cpp| grep -v "word2"

znajdujemy tylko w plikach z rozszerzeniem

edytuj
  grep -R --include *.c "palette" 


znajdujemy tylko nazwy plików z rozszerzeniem

edytuj

Opcja -l ( lowercase L)[6]

 grep -R --include *.c -l "palette"

znajdowanie linii zaczynającej się od ...

edytuj
  • linie są w poliku source.txt
  • linie zaczynają się od <text
  • linie są kopiowane ( bez usuwania) do pliku m.txt
 grep '^<text' source.txt > m.txt

usuwanie linii

edytuj
 grep -v '^<text' 20_05m.svg > m2.txt

Liczba znaków

edytuj
 grep -c

Porównaj:

Inne narzędzia

edytuj

Źródła

edytuj
  1. Dokumentacja Grep
  2. bash script - find file containing text
  3. Grep dokumentacja wersja 2.4.2, 2 lutego 2000
  4. Grep doc : 2.1.6 File and Directory Selection
  5. stackoverflow question: how-can-i-exclude-one-word-with-grep
  6. opengroup: grep
  7. beyond grep: more-tools