Hvordan telle ordforekomster i en tekstfil


Grafisk brukergrensesnitt tekstbehandlere og notatapplikasjoner har informasjon eller detaljindikatorer for dokumentdetaljer som antall sider, ord og tegn, en overskriftsliste i tekstbehandlere, en innholdsfortegnelse i noen markdown-editorer osv. og finne forekomsten av ord eller uttrykk er like enkelt som å trykke Ctrl + F og skrive inn tegnene du vil søke etter.

En GUI gjør alt enkelt, men hva skjer når du bare kan jobbe fra kommandolinjen og du vil sjekke hvor mange ganger et ord, en setning eller et tegn forekommer i en tekstfil? Det er nesten like enkelt som det er når du bruker en GUI så lenge du har den riktige kommandoen og jeg er i ferd med å fortelle deg hvordan det gjøres.

Anta at du har en example.txt-fil som inneholder setningene:

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.

Du kan bruke grep-kommandoen til å telle antall ganger "mauris" vises i filen som vist.

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

Bruk av grep -c alene vil telle antall linjer som inneholder det samsvarende ordet i stedet for antall treff totalt. Alternativet -o er det som forteller grep å sende ut hvert samsvar på en unik linje og deretter wc -l forteller wc å telle antall linjer. Slik utledes det totale antallet samsvarende ord.

En annen tilnærming er å transformere innholdet i inndatafilen med tr-kommandoen slik at alle ordene er på en enkelt linje, og deretter bruke grep -c for å telle det antallet samsvar.

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

Er det slik du vil sjekke ordforekomst fra terminalen din? Del opplevelsen din med oss og gi oss beskjed hvis du har en annen måte å utføre oppgaven på.