Zoeken onder Linux: grep
Voor de collectie 'note to self'. Ik vergeet constant hoe grep en find werken onder Linux. Laat ik een veel voorkomende opdracht eens vastleggen...
find . -name *.pt -print0 | xargs -0 -e grep -i portletCollection
Met de bovenstaande opdracht gebruiken we het commando find. Met het puntje achter find vertellen we dat find vanaf hier moet zoeken en ook in submappen. We willen dat find zoekt in alle bestanden eindigend op .pt. Binnen deze bestanden willen we zoeken op de tekst portletCollection.
grep -rsi 'porletCollection' *.pt .
Grep werkt ook goed, maar wel wat langzamer. Het -rsi doet iets slims, weet niet wat. Vervolgens zoeken we op portletCollection en we zoeken alleen in de betanden eindigend op .pt en net als bij find zoeken we met de punt vanaf de huidige map en daaronder.
Reacties
man 1 grep:
-r recursive
-s suppress error messages about non-existent or unreadble files
-i ignore case
De filespecs in het laatste voorbeeld zorgen ervoor dat je eerst zoekt in ./*.py, en dan in alle files onder de huidige directory. Dat doet grep niet, maar je shell.
Reageer
Reageren? Stuur een trackback (Zet Javascript aan om een Trackback URL te genereren ) of gebruik onderstaand formulier.