Programowanie w systemie UNIX/grep

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania


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"

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. beyond grep: more-tools