Sådan tælles ordforekomster i en tekstfil


Grafisk brugergrænseflade tekstbehandlingsprogrammer og noteringsapplikationer har oplysninger eller detaljerede indikatorer for dokumentoplysninger såsom antallet af sider, ord og tegn, en overskriftliste i tekstbehandlere, en indholdsfortegnelse i nogle markdown-redaktører osv. Og fund forekomsten af ord eller sætninger er lige så let som at ramme Ctrl + F og skrive de tegn, du vil søge efter.

En GUI gør alting let, men hvad sker der, når du kun kan arbejde fra kommandolinjen, og du vil kontrollere antallet af gange, et ord, en sætning eller et tegn forekommer i en tekstfil? Det er næsten lige så let som det er, når du bruger en GUI, så længe du har den rigtige kommando, og jeg er ved at fortælle dig, hvordan det gøres.

Antag, at du har en eksempel.txt -fil, der indeholder sætningerne:

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 bruge grep-kommandoen til at tælle antallet af gange mauris vises i filen som vist.

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

Brug af grep -c alene tæller antallet af linjer, der indeholder det matchende ord i stedet for antallet af samlede matches. Indstillingen -o er det, der fortæller grep at udgive hvert match i en unik linje, og derefter wc -l fortæller wc at tælle antallet af linjer. Sådan udledes det samlede antal matchende ord.

En anden tilgang er at omdanne indholdet af inputfilen med tr-kommando, så alle ord er i en enkelt linje og derefter bruge grep -c til at tælle det matchantal.

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

Er det sådan, du vil kontrollere ordforekomsten fra din terminal? Del din oplevelse med os, og fortæl os, om du har en anden måde at udføre opgaven på.