Weboldal keresés

Hogyan számoljuk meg a szavak előfordulását egy szövegfájlban


A Grafikus felhasználói felület szövegszerkesztők és jegyzetkészítő alkalmazások információ- vagy részletjelzőkkel rendelkeznek a dokumentum részleteihez, például az oldalak számához, szavakhoz és karakterek, fejléclista a szövegszerkesztőben, tartalomjegyzék néhány leíró szerkesztőben stb., valamint a szavak vagy kifejezések előfordulásának megtalálása olyan egyszerű, mint a Ctrl + F és a írja be a keresni kívánt karaktereket.

A GUI mindent leegyszerűsít, de mi történik, ha csak a parancssorból tud dolgozni, és szeretné ellenőrizni, hogy egy szó, kifejezés vagy karakter hányszor fordul elő egy szövegfájlban? Ez majdnem olyan egyszerű, mint a grafikus felhasználói felület használatakor, amíg megvan a megfelelő parancs, és hamarosan elmesélem, hogyan kell csinálni.

Tegyük fel, hogy van egy example.txt fájlja, amely a következő mondatokat tartalmazza:

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.

A grep paranccsal megszámolhatja, hogy a "mauris" hányszor jelenik meg a fájlban, ahogy az ábra mutatja.

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

A grep -c használata önmagában a megfelelő szót tartalmazó sorok számát számolja, nem pedig az összes egyezés számát. A -o opció azt mondja a grepnek, hogy minden egyezést egyedi sorban adja ki, majd a wc -l parancsot a wc-nek, hogy számolja meg a sorok számát. Így következtethető ki az egyező szavak teljes száma.

Egy másik megközelítés az, hogy a bemeneti fájl tartalmát a tr paranccsal úgy alakítjuk át, hogy az összes szó egyetlen sorban legyen, majd a grep -c használatával megszámolja az egyezések számát.

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

Így ellenőriznéd a szó előfordulását a terminálodról? Ossza meg velünk tapasztalatait, és tudassa velünk, ha van más módja a feladat végrehajtásának.