Często używaj tego:
grepmoże być używany w połączeniu z -r(rekurencyjne), i(ignoruj wielkość liter) i -o(drukuje tylko pasującą część linii). Aby wykluczyć filesużycie --excludei aby wykluczyć użycie katalogów --exclude-dir.
Podsumowując, otrzymujesz coś takiego:
grep -rio --exclude={filenames comma separated} \
--exclude-dir={directory names comma separated} <search term> <location>
Jego opis sprawia, że brzmi o wiele bardziej skomplikowane niż jest w rzeczywistości. Łatwiej to zilustrować prostym przykładem.
Przykład:
Załóżmy, że szukam bieżącego projektu dla wszystkich miejsc, w których jawnie ustawiam wartość debuggerciągu podczas sesji debugowania, a teraz chcę przejrzeć / usunąć.
Piszę skrypt o nazwie findDebugger.shi używam grepdo znalezienia wszystkich wystąpień. Jednak:
W przypadku wykluczeń plików - chciałbym się upewnić, że .eslintrczostanie zignorowany (w rzeczywistości jest to reguła podszywania się, debuggerdlatego należy go wykluczyć). Podobnie nie chcę, aby mój skrypt zawierał odwołania w jakichkolwiek wynikach.
Wyłączenia katalogów - chcę wykluczyć, node_modulesponieważ zawiera wiele bibliotek, które zawierają odwołania debuggeri nie jestem zainteresowany tymi wynikami. Chciałbym też pominąć .ideai .gitukryć katalogi, ponieważ nie dbam też o te lokalizacje wyszukiwania i chcę zachować skuteczność wyszukiwania.
Oto wynik - tworzę skrypt o nazwie findDebugger.sh:
#!/usr/bin/env bash
grep -rio --exclude={.eslintrc,findDebugger.sh} \
--exclude-dir={node_modules,.idea,.git} debugger .