Kaip suskaičiuoti žodžių pasikartojimus tekstiniame faile


Grafinė vartotojo sąsaja tekstų rengyklėse ir užrašų programose yra informacijos arba išsamios dokumento informacijos rodiklių, pvz., puslapių skaičiaus, žodžių ir simboliai, antraščių sąrašas tekstų rengyklėse, turinio lentelė kai kuriuose žymėjimo redaktoriuose ir t. t. ir rasti žodžių ar frazių atsiradimą taip pat paprasta paspaudus Ctrl + F ir įvesdami norimus ieškoti simbolius.

Naudojant GUI viskas paprasta, bet kas atsitiks, kai galite dirbti tik naudodami komandinę eilutę ir norite patikrinti, kiek kartų žodis, frazė ar simbolis pasitaiko tekstiniame faile? Tai beveik taip pat paprasta, kaip ir naudojant GUI, jei tik turite tinkamą komandą ir aš jums papasakosiu, kaip tai daroma.

Tarkime, kad turite failą example.txt, kuriame yra sakiniai:

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.

Galite naudoti komandą grep, kad suskaičiuotumėte, kiek kartų "mauris" pasirodo faile, kaip parodyta.

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

Vien naudojant grep -c bus skaičiuojamas eilučių, kuriose yra atitinkamas žodis, skaičius, o ne visų atitikmenų skaičius. Parinktis -o nurodo grep išvesti kiekvieną atitiktį unikalioje eilutėje, o tada wc -l nurodo wc skaičiuoti eilučių skaičių. Taip išskaičiuojamas bendras atitinkančių žodžių skaičius.

Kitas būdas yra transformuoti įvesties failo turinį naudojant tr komandą, kad visi žodžiai būtų vienoje eilutėje, o tada naudoti grep -c, kad suskaičiuotumėte atitikmenų skaičių.

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

Ar taip patikrintumėte žodžio atsiradimą iš savo terminalo? Pasidalykite savo patirtimi su mumis ir praneškite mums, jei turite kitą būdą, kaip atlikti užduotį.