Programowanie w systemie UNIX/grep
Wygląd
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]- ack
- ag[7]
Źródła
[edytuj]- ↑ Dokumentacja Grep
- ↑ bash script - find file containing text
- ↑ Grep dokumentacja wersja 2.4.2, 2 lutego 2000
- ↑ Grep doc : 2.1.6 File and Directory Selection
- ↑ stackoverflow question: how-can-i-exclude-one-word-with-grep
- ↑ opengroup: grep
- ↑ beyond grep: more-tools