Programowanie w systemie UNIX/grep
DokumentacjaEdytuj
grep --help
lub
man grep
SkładniaEdytuj
grep options pattern input_file_names
WersjaEdytuj
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życieEdytuj
Znajdowanie tekstu w plikachEdytuj
1 słowoEdytuj
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łowaEdytuj
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 rozszerzeniemEdytuj
grep -R --include *.c "palette"
znajdujemy tylko nazwy plików z rozszerzeniemEdytuj
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 liniiEdytuj
grep -v '^<text' 20_05m.svg > m2.txt
Liczba znakówEdytuj
grep -c
Porównaj:
Inne narzędziaEdytuj
- ack
- ag[7]