Sådan ekskluderer du underkataloger med grep: Effektive metoder til store kodebaser

Hvordan kan man ekskludere hele underkataloger, når man bruger grep til at søge i store kodebaser, da --exclude kun understøtter filmønstre?

Når man arbejder med store kodebaser, kan man ekskludere hele underkataloger fra søgninger med grep ved at bruge flaget --exclude-dir, kombinere find og xargs, anvende rsync til midlertidige kopier, eller benytte værktøjer som ack og ag.

Sådan ekskluderer man hele underkataloger, når man bruger grep til at søge i store kodebaser

Når man arbejder med store kodebaser, kan det være nødvendigt at ekskludere hele underkataloger fra søgninger med grep. Da --exclude kun understøtter filmønstre, kan man benytte andre metoder for at opnå dette. Her er nogle effektive måder at gøre det på:

Brug af --exclude-dir

grep har en indbygget mulighed for at ekskludere hele kataloger ved hjælp af --exclude-dir flaget. Dette flag kan bruges til at specificere de kataloger, der skal udelukkes fra søgningen.

grep -r --exclude-dir=dir_to_exclude "search_pattern" /path/to/search

Brug af find og xargs

En anden metode er at kombinere find og xargs for at ekskludere bestemte kataloger og derefter bruge grep til at søge i de resterende filer.

find /path/to/search -type d \( -name dir_to_exclude -prune \) -o -type f -print | xargs grep "search_pattern"

Brug af rsync til at kopiere uden ekskluderede kataloger

Man kan også bruge rsync til at kopiere filstrukturen uden de ekskluderede kataloger til en midlertidig placering og derefter bruge grep på den midlertidige kopi.

rsync -av --exclude='dir_to_exclude' /path/to/search /path/to/temp && grep -r "search_pattern" /path/to/temp

Brug af ack eller ag som alternativer

Værktøjer som ack og ag (The Silver Searcher) er designet til at være mere fleksible og brugervenlige end grep og har indbyggede muligheder for at ekskludere kataloger.

ack --ignore-dir=dir_to_exclude "search_pattern" /path/to/search
ag --ignore-dir dir_to_exclude "search_pattern" /path/to/search

Ved at bruge en af disse metoder kan man effektivt ekskludere hele underkataloger fra søgninger med grep og dermed gøre søgningen mere målrettet og effektiv.

Opret din første opgave på få minutter

Spar dig selv for besvær og kom igennem din to-do liste i dag

1

Beskriv din opgave

2

Modtag bud

3

Få løst din opgave

opgaver platform services

Møbelsamling

Hjælp med at samle Ikea klædeskab

opgaver platform services

Maler

Klargøring af lejlighed til flyttesyn

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Havearbejde

Beskæring af 4 større træer

opgaver platform services

IT support

Geninstallering af windows + programmer

opgaver platform services

Elektriker

Installation af Sonos musikanlæg i hus

opgaver platform services

Rengøring

Ugentlig rengøring af lejlighed (114kvm)

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Elektriker

Opsætning af lamper i stue og soveværelse

opgaver platform services

Catering

3-retters menu til 14 mennesker