Ubuntu: Linux voor mensen/Werken met bestanden/Tekst zoeken in een bestand
Het programma grep is eenvoudig maar zeer krachtig voor het filteren van lijnen output die een bepaalde string (= zoekwoord) bevatten. Er zijn letterlijk duizenden toepassingen die van het grep commando gebruik maken.
Vrijwel alle UNIX-systemen hebben een online woordenboek. Op onze Ubuntu bevindt het zich in /usr/share/dict/words. Standaard staat daar een Engels woordenboek, een Brits woordenboek en een Amerikaans woordenboek.
Ook in het Nederlands Je kan van het Internet ook een Nederlands woordenboek downloaden. De woordenboeken worden bijvoorbeeld gebruikt door programma's die spellingscontroles doen. |
Om grep te demonstreren, zullen we het woordenboek gebruiken.
ubuntu@ubuntu:~$ grep story /usr/share/dict/words clerestory clerestory's history history's prehistory prehistory's story story's storybook storybook's storybooks storyteller storyteller's storytellers |
Het woordenboek is slechts een bestand dat per lijn een woord bevat. Wat we doen in bovenstaand voorbeeld is alle lijnen van dat bestand tonen, waarin ergens de string “story” voorkomt. Dit commando heeft, zoals de meeste, weer een hele reeks opties. De meest gebruikte zijn -i, om hoofdletterongevoelig te zoeken, en -v om juist die lijnen die de zoekstring niet bevatten op het scherm te zetten.
Lijnen tellen Lees man grep. Wat is de optie om te tellen hoeveel keer een string in een bestand voorkomt? |
Om de output van bijvoorbeeld locate en find te filteren, zodat die korter wordt, zullen we er dikwijls een grep commando aanbreien. Hoe dat gaat, zien we in Deel 2.