Widziałem na niektórych Linuksie, który grep
jest skonfigurowany, aby podświetlić dopasowanie i wydrukować pasujący plik.
Jak mogę skonfigurować grep
podświetlanie meczów?
alias cgrep='grep -nR --color'
Stosowanie:
$ cgrep somestring /path/to/dir/or/file/with*/possible/*wild.card
Również jeden z moich ulubionych:
$ pgrep some-hanging-process
wyświetli listę wszystkich procesów, które pasują do nazwy jakiegoś wiszącego procesu, którego możesz użyć w następującej sytuacji:
$ kill $(pgrep some-hanging-process)
grep
,grep -r
powinny być ogólnie bardziej korzystne niżgrep -R
jak były nie przechodzić dowiązania.Odkryłem, że najlepszym sposobem na alfons grep jest użycie ack , który jest zasadniczo rekurencyjnym grepem z inteligentną listą ignorowania (np. Nie przeszukuje katalogów .svn, ignoruje pliki kopii zapasowych itp.), Podświetlenie kolorów wyników i perl regexps. To jest to, co chcesz, aby grep robił w 98,6% przypadków.
źródło
Ustawiłem to w moim .bashrc, zamiast redefiniować grep za pomocą aliasu:
Dla mnie działa to w systemach Linux, MacOSX i FreeBSD.
źródło
GREP_OPTIONS
należy uznać za szkodliwe. Polecamalias
zamiast tego użyć . Zobacz tutaj: bugs.launchpad.net/ubuntu/+bug/67141Polecam unikanie zmiennej środowiskowej GREP_OPTIONS, wpłynie to na każde wywołanie grep, nawet tych osadzonych w innych narzędziach. Jeśli te narzędzia oczekują, że grep będzie się zachowywał w jeden sposób, a ty zmienisz to zachowanie, spowoduje to uszkodzenie narzędzi.
Zamiast tego możesz utworzyć alias, który działa dobrze. Wpłynie to tylko na wywołania grep z interaktywnej powłoki (tzn. Że sam piszesz).
Ostatnią opcją, która najbardziej mi się podoba, jest stworzenie skryptu otoki, który wywołuje grep. Wolę to od aliasu, ponieważ mogę wywoływać to opakowanie z innych programów. Np. W vimie, ustawiając vimgrep, dzięki czemu moje wyszukiwania w vimie zachowują się identycznie jak wyszukiwania w wierszu poleceń.
Wywołaj to, używając:
na przykład
wyszuka wystąpienia „wzorca” we wszystkich plikach tekstowych w bieżącym katalogu i podkatalogach.
Zauważ, że nazywam mój skrypt „grp”, a nie cieniowanie „grep”, dzięki czemu zawsze mam świadomość, czy wywołuję grep z moimi niestandardowymi ustawieniami domyślnymi.
Domyślnie dołączam:
Myślę, że każdy chciałby pominąć katalog kontroli źródła: .hg .git .bzr .svn
Pomijanie „build” i „dist” to Python-isms i prawdopodobnie nie dotyczy większości ludzi. Bez wątpienia w trakcie pracy rozwiniesz swoje osobliwości.
„tags” to wynik ctagów, których używam do „przejdź do definicji funkcji” i tym podobnych w narzędziach takich jak vim. Jako taki zawiera co najmniej jedną kopię każdego słowa i symbolu z mojego kodu źródłowego, dlatego warto pomijać wyniki wyszukiwania.
„$ *” na końcu to składnia bash dla „i wszystkich innych parametrów z wiersza poleceń”, więc możesz przekazać wzorzec i katalog, aby szukać normalnie, i przesłonić wszelkie inne flagi linii poleceń .
źródło
--color
Opcja została już wspomniano kilka razy, ale chciałbym dodać, że jest to możliwe, aby zmienić kolor, w których mecze będą podświetlone za pomocą zmiennej środowiskowejKolor należy zakodować za pomocą kodów kolorów ANSI, w celach informacyjnych
źródło
GREP_COLOR
jest przestarzałe. UżyjGREP_COLORS
zamiast tego.Ponieważ nie widziałem żadnych przykładów ustawiania kolorów, oto prosta konfiguracja GNU grep:
Uważaj na
GREP_OPTIONS
; nie używaj go do niczego innego niż coś takiego--color=auto
, bo może to zepsuć wszystkie skrypty, które używają grep w twoim systemie.źródło