Kako prešteti pojavitve besed v besedilni datoteki


Urejevalniki besedil z grafičnim uporabniškim vmesnikom in aplikacije za zapiske imajo informacije ali kazalnike podrobnosti za podrobnosti dokumenta, kot so število strani, besed in znakov, seznam naslovov v urejevalnikih besedil, kazalo v nekaterih urejevalnikih oznak itd. In iskanje pojav besed ali besednih zvez je tako enostaven, kot če pritisnete Ctrl + F in vnesete znake, ki jih želite iskati.

GUI sicer vse olajša, kaj pa se zgodi, ko lahko delate samo iz ukazne vrstice in želite preveriti, kolikokrat se beseda, fraza ali znak pojavi v besedilni datoteki? Skoraj tako enostavno je kot pri uporabi grafičnega uporabniškega vmesnika, če imate pravi ukaz in vam bom pripovedoval, kako se to naredi.

Recimo, da imate datoteko example.txt , ki vsebuje stavke:

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.

Ukaz grep lahko uporabite za štetje, kolikokrat se \"mauris \" prikaže v datoteki, kot je prikazano.

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

Samo z uporabo grep -c se šteje število vrstic, ki vsebujejo ujemajočo se besedo, namesto števila skupnih ujemanj. Možnost -o je tisto, kar grepu sporoča, naj izpiše vsako ujemanje v unikatni vrstici, nato pa wc -l sporoči wc, naj prešteje število vrstic. Tako se izračuna skupno število ujemajočih se besed.

Drugačen pristop je pretvorba vsebine vhodne datoteke z ukazom tr, tako da so vse besede v eni vrstici, nato pa uporabite grep -c za štetje števila ujemanj.

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

Ali bi tako preverili pojav besed s terminala? Delite svoje izkušnje z nami in nam sporočite, če imate še en način za izvedbo naloge.