Zoeken

Uit De Vliegende Brigade
Versie door Jeroen Strompf (overleg | bijdragen) op 11 dec 2021 om 13:26 (→‎Voorbeeld 3: Boom doorzoeken)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

Wat ik meestal zoek: Een tekststring in een willekeurig bestand in een map:

grep -rn . -e "zoektekst"

Of ik zoek recursief naar een bestand met een bepaalde naam:

find -name "Progress*.pdf"

Find - Bestanden & mappen zoeken en verwerken

Zie Find (Linux).

Grep - ?

Geen idee wat Grep precies is, maar het werkt als een tierelier :)

Locate - Bestanden zoeken

Locate is vermoedelijk de eenvoudigste én meest beperkte manier om bestanden te vinden. Je kunt bv. niet in een bepaalde boom zoeken, alleen globaal (geloof ik). Hte werk lekker simpel. Bv.:

locate bestandsnaam

Indien

locate WatJeZoekt

De volgende foutmelding geeft:

locate: can not open `/var/lib/mlocate/mlocate.db'

Moet je geven:

updatedb

Which - Commando zoeken

Bv.:

which composer.phar
/usr/local/bin/composer/composer.phar

Tweede voorbeeld:

which composer

geeft geen resultaten, want het commando heet composer.phar

String in bestanden vinden

Hoe vind je een bepaalde string in een verzameling bestanden?

Voorbeeld 1

Input:

grep -rn . -e "load_theme_textdomain("   # Zoek recursief naar de opgegeven tekenreeks en vermeld regelnummer

Output:

./functions.php:45:	load_theme_textdomain( 'shape', get_template_directory() . '/languages' );

Voorbeeld 2: Eén bestand of map doorzoeken

Syntaxis:

grep "text string to search” directory-path

De working directory bevat een MySQL-database-dumps:

grep -r "drop" .

Zonder -r werkt het niet. Wat ook werkt:

grep "drop" db-dump.mysql

Voorbeeld 3: Boom doorzoeken

Inm. de add to cart-vertaalbug wil ik een Drupal-installatie doorzoeken op de zoekterm Add to cart:

grep -r "Add to cart" .

Dit geeft een paar schermen met resultaten. Da's goed.

Escaping

# Hoe vind ik bestanden met de letterlijke tekenreeks "$email"?
#
grep -rn -e "$email "               # Niet OK
grep -rn -e "email " | grep "\\$"   # OK
grep -rn -e "\\$email "             # Niet OK
grep -rn -e "\\\$email "            # OK

Zie ook

Bronnen