W tej chwili używam dwóch poleceń, jestem pewien, że musi być lepszy sposób ...
wim@wim-acer:~/ffmpeg$ find . -name "*.h" -print0 | xargs -0 grep -i invalid\ preset
wim@wim-acer:~/ffmpeg$ find . -name "*.c" -print0 | xargs -0 grep -i invalid\ preset
-name '*.[ch]'
działa?Odpowiedzi:
ack (lub, w Debianie / Ubuntu, ack-grep) zignoruje pliki inne niż źródła, takie jak kontrola wersji lub pliki binarne. Bardzo przydatne.
aby wyszukać tylko pliki .c i .h, jak wyżej:
--cc
(dłuższa forma jest--type cc
) wygląda tylko na .c .h & .xs plików. Pełna lista typów plików jest widoczna wack-grep --help type
. Przez większość czasu nie będzie to szczególnie potrzebne--type
, ponieważ zazwyczaj będą zawierały tylko pliki do przeszukania, a następnie pliki domyślnie niewidoczne, takie jak pliki binarne, kopie zapasowe i pliki kontroli wersji.źródło
Sam
grep
program może wyszukiwać rekurencyjnie, a także akceptuje opcję wyszukiwania tylko niektórych plików. Poniższe jest równoważne z dwomafind
poleceniami.źródło
Polecenie find może wywołać grep.
i ich odmiany.
źródło
Mogę dodać coś takiego do twojego
~/.bashrc
źródło