Vyhledávání na webu

Jak počítat výskyty slov v textovém souboru


Grafické uživatelské rozhraní textové procesory a aplikace pro psaní poznámek mají informace nebo podrobné indikátory pro podrobnosti dokumentu, jako je počet stránek, slov a znaky, seznam nadpisů v textových procesorech, obsah v některých editorech markdown atd. a zjištění výskytu slov nebo frází je stejně snadné jako stisknutí kláves Ctrl + F a zadáním znaků, které chcete vyhledat.

GUI vše usnadňuje, ale co se stane, když můžete pracovat pouze z příkazového řádku a chcete zkontrolovat, kolikrát se slovo, fráze nebo znak vyskytuje v textovém souboru? Je to téměř tak snadné, jako když používáte GUI, pokud máte správný příkaz a já se vám chystám vyprávět, jak se to dělá.

Předpokládejme, že máte soubor example.txt obsahující věty:

Praesent in mauris eu tortor porttitor accumsan. Mauris suscipit, ligula sit amet pharetra semper, 
nibh ante cursus purus, vel sagittis velit mauris vel metus enean fermentum risus.

Pomocí příkazu grep můžete spočítat, kolikrát se "mauris" objeví v souboru, jak je znázorněno.

grep -o -i mauris example.txt | wc -l

Samotné použití grep -c spočítá počet řádků, které obsahují odpovídající slovo, místo celkového počtu shod. Volba -o je to, co říká grepu, aby vypsal každou shodu na jedinečném řádku a poté wc -l říká wc, aby spočítal počet řádků. Takto se odvodí celkový počet shodných slov.

Jiný přístup je transformovat obsah vstupního souboru pomocí příkazu tr tak, aby všechna slova byla na jednom řádku, a poté pomocí grep -c spočítat počet shod.

tr '[:space:]' '[\n*]' < example.txt | grep -i -c mauris

Takto byste zkontrolovali výskyt slova z vašeho terminálu? Podělte se s námi o své zkušenosti a dejte nám vědět, jestli máte jiný způsob, jak úkol splnit.