Deze tip gaat verder waar we in de vorige tip over Reguliere expressies gestopt waren. Het eerste deel behandelde het zoeken in bestanden en mappen met behulp van reguliere expressies die gebruik maken van tekens, groepen en ankers. Vandaag gaan we verder met reguliere expressies die gebruik maken van klassen, reeksen en hoeveelheden.
Een klasse (Class) bestaat uit een reeks tekens of een groep. Klassen worden tussen rechte haken geplaatst [].
Een reeks is een speciale groep met tekens in een klasse. Om bijvoorbeeld te zoeken naar een hoofdletter tussen A en L, gebruiken we de reeks [A-L].
Met de klasse en reeks [0-9] zoek je naar cijfers. Met de volgende opdracht zoek je in het bestand grephelp.txt naar cijfers:
dany@pindabook:~> grep '[0-9]' grephelp.txt
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-Z, --null een 0-byte invoegen na iedere bestandsnaam
De afsluitwaarde is 0 in geval van overeenkomsten, anders 1; als er
een fout optreedt en '-q' is niet gegeven, dan is de afsluitwaarde 2.
Er werden vier regels met cijfers gevonden. Enkel de cijfers 0, 1 en 2 komen in het bestand grephelp.txt voor. Om enkel te zoeken naar de cijfers 0 en 1, gebruik je de opdracht:
dany@pindabook:~> grep '[0-1]' grephelp.txt
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-Z, --null een 0-byte invoegen na iedere bestandsnaam
De afsluitwaarde is 0 in geval van overeenkomsten, anders 1; als er
Om juist niet naar cijfers te zoeken, laat je de reeks voorafgaan door een ^-teken. Om te zoeken naar -byte dat niet door een cijfers wordt voorafgegaan, gebruik je:
dany@pindabook:~> grep "[^0-9]-byte" grephelp.txt
-b, --byte-offset bij de uitvoerregels het byte-adres tonen
Laat je de negatie (^) weg dan krijg je het volgende resultaat:
dany@pindabook:~> grep "[0-9]-byte" grephelp.txt
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-Z, --null een 0-byte invoegen na iedere bestandsnaam
Met klassen kan je eenvoudig hoofletterongevoelig zoeken. Om de opties -r en -R in het bestand grephelp.txt op te sporen, gebruik je:
dany@pindabook:~> grep "\-[rR]," grephelp.txt
-r, --recursive afdalen in submappen (ofwel '--directories=recurse')
-R, --dereference-recursive idem, maar alle symbolische koppelingen volgen
Let daarbij op de backslash. Deze wordt gebruikt om het volgende teken letterlijk te interpreteren, waardoor grep deze niet als het begin van een optie ziet, maar wel als een te zoeken koppelteken.
Speciale klassen en reeksen kan je als volgt verkort schrijven:
Om alle opties uit de grephelp.txt te halen, gebruik je bijvoorbeeld de volgende opdracht:
dany@pindabook:~> grep "\-[[:alnum:]]," grephelp.txt
-E, --extended-regexp PATROON is een uitgebreide reguliere expressie
-F, --fixed-strings PATROON is een serie tekenreeksen,
-G, --basic-regexp PATROON is een gewone reguliere expressie (standaard)
-P, --perl-regexp PATROON is een reguliere Perl-expressie
-e, --regexp=PATROON dit PATROON gebruiken bij het zoeken
-f, --file=BESTAND patronen uit dit BESTAND halen
-i, --ignore-case verschil tussen hoofd- en kleine letters negeren
-w, --word-regexp patronen komen alleen overeen met een heel woord
-x, --line-regexp patronen komen alleen overeen met een hele regel
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-s, --no-messages foutmeldingen onderdrukken
-v, --invert-match de niet-overeenkomende regels selecteren
-V, --version programmaversie tonen en stoppen
-m, --max-count=AANTAL na dit AANTAL overeenkomsten stoppen
-b, --byte-offset bij de uitvoerregels het byte-adres tonen
-n, --line-number bij de uitvoerregels het regelnummer tonen
-H, --with-filename bij de uitvoerregels de bestandsnaam tonen
-h, --no-filename nooit de bestandsnaam tonen
-o, --only-matching alleen het overeenkomende regelfragment tonen
-q, --quiet, --silent alle normale uitvoer onderdrukken
-a, --text hetzelfde als '--binary-files=text'
-d, --directories=ACTIE mappen behandelen met deze ACTIE;
-D, --devices=ACTIE apparaten, FIFO's en sockets behandelen met ACTIE;
-r, --recursive afdalen in submappen (ofwel '--directories=recurse')
-R, --dereference-recursive idem, maar alle symbolische koppelingen volgen
-L, --files-without-match alleen namen van bestanden zonder overeenkomst tonen
-l, --files-with-matches alleen namen van bestanden met overeenkomsten tonen
-c, --count alleen het aantal overeenkomsten per bestand tonen
-T, --initial-tab tabs uitlijnen (eventueel een tab-teken invoegen)
-Z, --null een 0-byte invoegen na iedere bestandsnaam
-B, --before-context=AANTAL dit AANTAL regels voorafgaande context tonen
-A, --after-context=AANTAL dit AANTAL regels nakomende context tonen
-C, --context=AANTAL dit AANTAL regels context tonen
-U, --binary geen CR-tekens weghalen bij regeleinde (MSDOS/Windows)
Alle opties in de helptekst beginnen namelijk met een koppelteken, gevolgd door een cijfer of letter en eindigen op een komma.
Een hoeveelheid (Quantifier) is een speciaal teken die andere tekens vervangt. Er zijn vier Quantifiers, waarbij de laatste drie variaties heeft:
Om te zoeken naar nu gevold door een willekeurig aantal l-tekens, gebruik je:
dany@pindabook:~> grep 'nul*' grephelp.txt
Voorbeeld: grep -i 'hallo wereld' menu.h main.c
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-n, --line-number bij de uitvoerregels het regelnummer tonen
-Z, --null een 0-byte invoegen na iedere bestandsnaam
Rapporteer gebreken in het programma aan <bug-grep@gnu.org>;
Webpagina van GNU grep: <http://www.gnu.org/software/grep/>
Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/>
Met * moet het l-teken dus niet eens voorkomen. Gebruik + als het l-teken minstens één keer moet voorkomen:
dany@pindabook:~> grep 'nul\+' grephelp.txt
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-Z, --null een 0-byte invoegen na iedere bestandsnaam
Ook hier moet je het + teken door een backslash laten voorafgaan om te verhinderen dat grep die niet zelf gaat interpreteren, maar het als een deel van de reguliere expressie bekijkt. Ben je op zoek naar een n, gevolgd door minstens één u en daarna door minstens één l, gebruikt dan:
dany@pindabook:~> grep 'nu\+l\+' grephelp.txt
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-Z, --null een 0-byte invoegen na iedere bestandsnaam
Met een vraagteken zoek je naar geen enkele of meerdere keren het voorgaande teken. Om te zoeken naar een n, al dan niet gevolgd door u tekens en een l, gebruik je:
dany@pindabook:~> grep 'nu\?l' grephelp.txt
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-o, --only-matching alleen het overeenkomende regelfragment tonen
-Z, --null een 0-byte invoegen na iedere bestandsnaam
Tussen accolades kan je meegeven hoeveel keer het vorige teken moet voorkomen. Om te zoeken naar nu gevolgd door twee l-tekens, gebruik je:
dany@pindabook:~> grep -E 'nul{2}' grephelp.txt
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-Z, --null een 0-byte invoegen na iedere bestandsnaam
Zoeken naar een bepaald aantal tekens, werkt alleen als je grep gebruikt met de optie -E (Extended, uitgebreide reguliere expressies). Zoeken naar drie opeenvolgende klinkers, lukt met de opdracht:
dany@pindabook:~> grep -E '[aeiou]{3}' grephelp.txt
-h, --no-filename nooit de bestandsnaam tonen
-q, --quiet, --silent alle normale uitvoer onderdrukken
-T, --initial-tab tabs uitlijnen (eventueel een tab-teken invoegen)
WANNEER is 'always' (altijd), 'never' (nooit),
Gaan we op zoek naar drie opeenvolgende medeklinkers (dus geen klinkers), dan gebruiken we:
dany@pindabook:~> grep -E '[^aeiou]{3}' grephelp.txt
Gebruik: grep [OPTIE...] PATROON [BESTAND...]
Zoekt naar PATROON in ieder gegeven BESTAND.
Voorbeeld: grep -i 'hallo wereld' menu.h main.c
Keuze en interpretatie van het patroon:
-E, --extended-regexp PATROON is een uitgebreide reguliere expressie
-F, --fixed-strings PATROON is een serie tekenreeksen,
elke tekenreeks op een aparte regel
-G, --basic-regexp PATROON is een gewone reguliere expressie (standaard)
-P, --perl-regexp PATROON is een reguliere Perl-expressie
-e, --regexp=PATROON dit PATROON gebruiken bij het zoeken
-f, --file=BESTAND patronen uit dit BESTAND halen
-i, --ignore-case verschil tussen hoofd- en kleine letters negeren
-w, --word-regexp patronen komen alleen overeen met een heel woord
-x, --line-regexp patronen komen alleen overeen met een hele regel
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-s, --no-messages foutmeldingen onderdrukken
-v, --invert-match de niet-overeenkomende regels selecteren
-V, --version programmaversie tonen en stoppen
--help deze hulptekst tonen en stoppen
-m, --max-count=AANTAL na dit AANTAL overeenkomsten stoppen
-b, --byte-offset bij de uitvoerregels het byte-adres tonen
-n, --line-number bij de uitvoerregels het regelnummer tonen
--line-buffered elke uitvoerregel direct tonen
-H, --with-filename bij de uitvoerregels de bestandsnaam tonen
-h, --no-filename nooit de bestandsnaam tonen
--label=LABEL dit LABEL als naam voor standaardinvoer gebruiken
-o, --only-matching alleen het overeenkomende regelfragment tonen
-q, --quiet, --silent alle normale uitvoer onderdrukken
--binary-files=TYPE aannemen dat binaire bestanden van dit TYPE zijn;
TYPE is 'binary' (binair), 'text' (als tekst),
of 'without-match' (alsof geen overeenkomsten)
-a, --text hetzelfde als '--binary-files=text'
-I hetzelfde als '--binary-files=without-match'
-d, --directories=ACTIE mappen behandelen met deze ACTIE;
ACTIE is 'read', 'recurse' of 'skip'
(ofwel lezen, in-afdalen, of overslaan)
-D, --devices=ACTIE apparaten, FIFO's en sockets behandelen met ACTIE;
ACTIE is 'read' of 'skip' (lezen of overslaan)
-r, --recursive afdalen in submappen (ofwel '--directories=recurse')
-R, --dereference-recursive idem, maar alle symbolische koppelingen volgen
--include=BESTANDSPATROON alleen bestanden doorzoeken die aan
BESTANDSPATROON voldoen
--exclude=BESTANDSPATROON bestanden overslaan die aan BESTANDSPATROON
voldoen
--exclude-from=BESTAND bestanden overslaan die aan een patroon in
BESTAND voldoen
--exclude-dir=PATROON mappen overslaan die aan PATROON voldoen
-L, --files-without-match alleen namen van bestanden zonder overeenkomst tonen
-l, --files-with-matches alleen namen van bestanden met overeenkomsten tonen
-c, --count alleen het aantal overeenkomsten per bestand tonen
-T, --initial-tab tabs uitlijnen (eventueel een tab-teken invoegen)
-Z, --null een 0-byte invoegen na iedere bestandsnaam
Contextbesturing:
-B, --before-context=AANTAL dit AANTAL regels voorafgaande context tonen
-A, --after-context=AANTAL dit AANTAL regels nakomende context tonen
-C, --context=AANTAL dit AANTAL regels context tonen
-AANTAL hetzelfde als '--context=AANTAL'
--color[=WANNEER],
--colour[=WANNEER] overeenkomende tekst gekleurd weergeven;
WANNEER is 'always' (altijd), 'never' (nooit),
of 'auto' (gepast voor uitvoerdoel; standaard)
-U, --binary geen CR-tekens weghalen bij regeleinde (MSDOS/Windows)
Indien BESTAND '-' is, wordt standaardinvoer gelezen. Zonder een BESTAND
wordt '.' gelezen indien in recursieve modus, anders wordt '-' gelezen.
Bij minder dan twee BESTANDen wordt '-h' aangenomen.
De afsluitwaarde is 0 in geval van overeenkomsten, anders 1; als er
een fout optreedt en '-q' is niet gegeven, dan is de afsluitwaarde 2.
Rapporteer gebreken in het programma aan <bug-grep@gnu.org>;
meld fouten in de vertaling aan <vertaling@vrijschrift.org>.
Webpagina van GNU grep: <http://www.gnu.org/software/grep/>
Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/>
Dit was duidelijk niet de volledige oplossing. Zo blijken spaties ook geen klinkers te zijn. Om medeklinkers zonder witruimte te zoeken:
dany@pindabook:~> grep -E '[^aeiou[:space:]]{3}' grephelp.txt
Gebruik: grep [OPTIE...] PATROON [BESTAND...]
Zoekt naar PATROON in ieder gegeven BESTAND.
Voorbeeld: grep -i 'hallo wereld' menu.h main.c
Keuze en interpretatie van het patroon:
-E, --extended-regexp PATROON is een uitgebreide reguliere expressie
-F, --fixed-strings PATROON is een serie tekenreeksen,
-G, --basic-regexp PATROON is een gewone reguliere expressie (standaard)
-P, --perl-regexp PATROON is een reguliere Perl-expressie
-e, --regexp=PATROON dit PATROON gebruiken bij het zoeken
-f, --file=BESTAND patronen uit dit BESTAND halen
-i, --ignore-case verschil tussen hoofd- en kleine letters negeren
-w, --word-regexp patronen komen alleen overeen met een heel woord
-x, --line-regexp patronen komen alleen overeen met een hele regel
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-s, --no-messages foutmeldingen onderdrukken
-v, --invert-match de niet-overeenkomende regels selecteren
-V, --version programmaversie tonen en stoppen
--help deze hulptekst tonen en stoppen
-m, --max-count=AANTAL na dit AANTAL overeenkomsten stoppen
-b, --byte-offset bij de uitvoerregels het byte-adres tonen
-n, --line-number bij de uitvoerregels het regelnummer tonen
--line-buffered elke uitvoerregel direct tonen
-H, --with-filename bij de uitvoerregels de bestandsnaam tonen
-h, --no-filename nooit de bestandsnaam tonen
--label=LABEL dit LABEL als naam voor standaardinvoer gebruiken
-o, --only-matching alleen het overeenkomende regelfragment tonen
-q, --quiet, --silent alle normale uitvoer onderdrukken
--binary-files=TYPE aannemen dat binaire bestanden van dit TYPE zijn;
TYPE is 'binary' (binair), 'text' (als tekst),
of 'without-match' (alsof geen overeenkomsten)
-a, --text hetzelfde als '--binary-files=text'
-I hetzelfde als '--binary-files=without-match'
-d, --directories=ACTIE mappen behandelen met deze ACTIE;
ACTIE is 'read', 'recurse' of 'skip'
(ofwel lezen, in-afdalen, of overslaan)
-D, --devices=ACTIE apparaten, FIFO's en sockets behandelen met ACTIE;
ACTIE is 'read' of 'skip' (lezen of overslaan)
-r, --recursive afdalen in submappen (ofwel '--directories=recurse')
-R, --dereference-recursive idem, maar alle symbolische koppelingen volgen
--include=BESTANDSPATROON alleen bestanden doorzoeken die aan
BESTANDSPATROON voldoen
--exclude=BESTANDSPATROON bestanden overslaan die aan BESTANDSPATROON
--exclude-from=BESTAND bestanden overslaan die aan een patroon in
BESTAND voldoen
--exclude-dir=PATROON mappen overslaan die aan PATROON voldoen
-L, --files-without-match alleen namen van bestanden zonder overeenkomst tonen
-l, --files-with-matches alleen namen van bestanden met overeenkomsten tonen
-c, --count alleen het aantal overeenkomsten per bestand tonen
-T, --initial-tab tabs uitlijnen (eventueel een tab-teken invoegen)
-Z, --null een 0-byte invoegen na iedere bestandsnaam
Contextbesturing:
-B, --before-context=AANTAL dit AANTAL regels voorafgaande context tonen
-A, --after-context=AANTAL dit AANTAL regels nakomende context tonen
-C, --context=AANTAL dit AANTAL regels context tonen
-AANTAL hetzelfde als '--context=AANTAL'
--color[=WANNEER],
--colour[=WANNEER] overeenkomende tekst gekleurd weergeven;
WANNEER is 'always' (altijd), 'never' (nooit),
of 'auto' (gepast voor uitvoerdoel; standaard)
-U, --binary geen CR-tekens weghalen bij regeleinde (MSDOS/Windows)
Indien BESTAND '-' is, wordt standaardinvoer gelezen. Zonder een BESTAND
wordt '.' gelezen indien in recursieve modus, anders wordt '-' gelezen.
Bij minder dan twee BESTANDen wordt '-h' aangenomen.
De afsluitwaarde is 0 in geval van overeenkomsten, anders 1; als er
een fout optreedt en '-q' is niet gegeven, dan is de afsluitwaarde 2.
Rapporteer gebreken in het programma aan <bug-grep@gnu.org>;
meld fouten in de vertaling aan <vertaling@vrijschrift.org>.
Webpagina van GNU grep: <http://www.gnu.org/software/grep/>
Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/>
Maar ook de hoofdletter klinkers moeten eruit:
dany@pindabook:~> grep -E '[^aeiouAEIOU[:space:]]{3}' grephelp.txt
Gebruik: grep [OPTIE...] PATROON [BESTAND...]
Zoekt naar PATROON in ieder gegeven BESTAND.
Voorbeeld: grep -i 'hallo wereld' menu.h main.c
Keuze en interpretatie van het patroon:
-E, --extended-regexp PATROON is een uitgebreide reguliere expressie
-F, --fixed-strings PATROON is een serie tekenreeksen,
-G, --basic-regexp PATROON is een gewone reguliere expressie (standaard)
-P, --perl-regexp PATROON is een reguliere Perl-expressie
-e, --regexp=PATROON dit PATROON gebruiken bij het zoeken
-f, --file=BESTAND patronen uit dit BESTAND halen
-i, --ignore-case verschil tussen hoofd- en kleine letters negeren
-w, --word-regexp patronen komen alleen overeen met een heel woord
-x, --line-regexp patronen komen alleen overeen met een hele regel
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-s, --no-messages foutmeldingen onderdrukken
-v, --invert-match de niet-overeenkomende regels selecteren
-V, --version programmaversie tonen en stoppen
--help deze hulptekst tonen en stoppen
-m, --max-count=AANTAL na dit AANTAL overeenkomsten stoppen
-b, --byte-offset bij de uitvoerregels het byte-adres tonen
-n, --line-number bij de uitvoerregels het regelnummer tonen
--line-buffered elke uitvoerregel direct tonen
-H, --with-filename bij de uitvoerregels de bestandsnaam tonen
-h, --no-filename nooit de bestandsnaam tonen
--label=LABEL dit LABEL als naam voor standaardinvoer gebruiken
-o, --only-matching alleen het overeenkomende regelfragment tonen
-q, --quiet, --silent alle normale uitvoer onderdrukken
--binary-files=TYPE aannemen dat binaire bestanden van dit TYPE zijn;
TYPE is 'binary' (binair), 'text' (als tekst),
of 'without-match' (alsof geen overeenkomsten)
-a, --text hetzelfde als '--binary-files=text'
-I hetzelfde als '--binary-files=without-match'
-d, --directories=ACTIE mappen behandelen met deze ACTIE;
ACTIE is 'read', 'recurse' of 'skip'
(ofwel lezen, in-afdalen, of overslaan)
-D, --devices=ACTIE apparaten, FIFO's en sockets behandelen met ACTIE;
ACTIE is 'read' of 'skip' (lezen of overslaan)
-r, --recursive afdalen in submappen (ofwel '--directories=recurse')
-R, --dereference-recursive idem, maar alle symbolische koppelingen volgen
--include=BESTANDSPATROON alleen bestanden doorzoeken die aan
BESTANDSPATROON voldoen
--exclude=BESTANDSPATROON bestanden overslaan die aan BESTANDSPATROON
--exclude-from=BESTAND bestanden overslaan die aan een patroon in
--exclude-dir=PATROON mappen overslaan die aan PATROON voldoen
-L, --files-without-match alleen namen van bestanden zonder overeenkomst tonen
-l, --files-with-matches alleen namen van bestanden met overeenkomsten tonen
-c, --count alleen het aantal overeenkomsten per bestand tonen
-T, --initial-tab tabs uitlijnen (eventueel een tab-teken invoegen)
-Z, --null een 0-byte invoegen na iedere bestandsnaam
Contextbesturing:
-B, --before-context=AANTAL dit AANTAL regels voorafgaande context tonen
-A, --after-context=AANTAL dit AANTAL regels nakomende context tonen
-C, --context=AANTAL dit AANTAL regels context tonen
-AANTAL hetzelfde als '--context=AANTAL'
--color[=WANNEER],
--colour[=WANNEER] overeenkomende tekst gekleurd weergeven;
WANNEER is 'always' (altijd), 'never' (nooit),
of 'auto' (gepast voor uitvoerdoel; standaard)
-U, --binary geen CR-tekens weghalen bij regeleinde (MSDOS/Windows)
Indien BESTAND '-' is, wordt standaardinvoer gelezen. Zonder een BESTAND
wordt '.' gelezen indien in recursieve modus, anders wordt '-' gelezen.
Bij minder dan twee BESTANDen wordt '-h' aangenomen.
De afsluitwaarde is 0 in geval van overeenkomsten, anders 1; als er
een fout optreedt en '-q' is niet gegeven, dan is de afsluitwaarde 2.
Rapporteer gebreken in het programma aan <bug-grep@gnu.org>;
meld fouten in de vertaling aan <vertaling@vrijschrift.org>.
Webpagina van GNU grep: <http://www.gnu.org/software/grep/>
Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/>
En de leestekens:
dany@pindabook:~> grep -E '[^aeiouAEIOU[:space:][:punct:]]{3}' grephelp.txt
Keuze en interpretatie van het patroon:
-E, --extended-regexp PATROON is een uitgebreide reguliere expressie
-F, --fixed-strings PATROON is een serie tekenreeksen,
-G, --basic-regexp PATROON is een gewone reguliere expressie (standaard)
-P, --perl-regexp PATROON is een reguliere Perl-expressie
-i, --ignore-case verschil tussen hoofd- en kleine letters negeren
-z, --null-data regels eindigen op 0-byte, niet op LF-teken
-s, --no-messages foutmeldingen onderdrukken
-v, --invert-match de niet-overeenkomende regels selecteren
--help deze hulptekst tonen en stoppen
-m, --max-count=AANTAL na dit AANTAL overeenkomsten stoppen
-b, --byte-offset bij de uitvoerregels het byte-adres tonen
-H, --with-filename bij de uitvoerregels de bestandsnaam tonen
-h, --no-filename nooit de bestandsnaam tonen
-o, --only-matching alleen het overeenkomende regelfragment tonen
-q, --quiet, --silent alle normale uitvoer onderdrukken
--binary-files=TYPE aannemen dat binaire bestanden van dit TYPE zijn;
TYPE is 'binary' (binair), 'text' (als tekst),
of 'without-match' (alsof geen overeenkomsten)
-a, --text hetzelfde als '--binary-files=text'
-I hetzelfde als '--binary-files=without-match'
(ofwel lezen, in-afdalen, of overslaan)
ACTIE is 'read' of 'skip' (lezen of overslaan)
-R, --dereference-recursive idem, maar alle symbolische koppelingen volgen
--include=BESTANDSPATROON alleen bestanden doorzoeken die aan
BESTANDSPATROON voldoen
--exclude=BESTANDSPATROON bestanden overslaan die aan BESTANDSPATROON
--exclude-from=BESTAND bestanden overslaan die aan een patroon in
--exclude-dir=PATROON mappen overslaan die aan PATROON voldoen
-L, --files-without-match alleen namen van bestanden zonder overeenkomst tonen
-l, --files-with-matches alleen namen van bestanden met overeenkomsten tonen
-c, --count alleen het aantal overeenkomsten per bestand tonen
-Z, --null een 0-byte invoegen na iedere bestandsnaam
Contextbesturing:
-AANTAL hetzelfde als '--context=AANTAL'
--colour[=WANNEER] overeenkomende tekst gekleurd weergeven;
-U, --binary geen CR-tekens weghalen bij regeleinde (MSDOS/Windows)
Indien BESTAND '-' is, wordt standaardinvoer gelezen. Zonder een BESTAND
wordt '.' gelezen indien in recursieve modus, anders wordt '-' gelezen.
Bij minder dan twee BESTANDen wordt '-h' aangenomen.
De afsluitwaarde is 0 in geval van overeenkomsten, anders 1; als er
een fout optreedt en '-q' is niet gegeven, dan is de afsluitwaarde 2.
meld fouten in de vertaling aan <vertaling@vrijschrift.org>.
Webpagina van GNU grep: <http://www.gnu.org/software/grep/>
Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/>
Zoek je meer dan vier opeenvolgende medeklinkers, gebruik dan:
dany@pindabook:~> grep -E '[^aeiouAEIOU[:space:][:punct:]]{4,}' grephelp.txt
-i, --ignore-case verschil tussen hoofd- en kleine letters negeren
-H, --with-filename bij de uitvoerregels de bestandsnaam tonen
-h, --no-filename nooit de bestandsnaam tonen
-R, --dereference-recursive idem, maar alle symbolische koppelingen volgen
--include=BESTANDSPATROON alleen bestanden doorzoeken die aan
BESTANDSPATROON voldoen
--exclude=BESTANDSPATROON bestanden overslaan die aan BESTANDSPATROON
-Z, --null een 0-byte invoegen na iedere bestandsnaam
meld fouten in de vertaling aan <vertaling@vrijschrift.org>.
Webpagina van GNU grep: <http://www.gnu.org/software/grep/>
Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/>
Om tussen de vier en vijf opeenvolgende medeklinkers te zoeken:
dany@pindabook:~> grep -E '[^aeiouAEIOU[:space:][:punct:]]{4,5}' grephelp.txt
-i, --ignore-case verschil tussen hoofd- en kleine letters negeren
-H, --with-filename bij de uitvoerregels de bestandsnaam tonen
-h, --no-filename nooit de bestandsnaam tonen
-R, --dereference-recursive idem, maar alle symbolische koppelingen volgen
--include=BESTANDSPATROON alleen bestanden doorzoeken die aan
BESTANDSPATROON voldoen
--exclude=BESTANDSPATROON bestanden overslaan die aan BESTANDSPATROON
-Z, --null een 0-byte invoegen na iedere bestandsnaam
meld fouten in de vertaling aan <vertaling@vrijschrift.org>.
Webpagina van GNU grep: <http://www.gnu.org/software/grep/>
Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/>
Je merkt wel dat reguliere expressies een krachtig hulpmiddel is. Maar je moet er wel eerst mee vertrouwd geraken. Eenmaal dat je met reguliere expressies kunt werken, en je de kracht ervan hebt ervaren, kan je al ze al snel niet meer missen. Het loont dus zeker de moeite om reguliere expressie te leren gebruiken (en vooral ermee te experimenteren) om er veel plezier aan te beleven.