Zoeken op website

Hoe u woordvoorvallen in een tekstbestand kunt tellen


Grafische gebruikersinterface tekstverwerkers en toepassingen voor het maken van notities hebben informatie of detailindicatoren voor documentdetails zoals het aantal pagina's, woorden en tekens, een lijst met koppen in tekstverwerkers, een inhoudsopgave in sommige markdown-editors, enz. en het vinden van de woorden of zinsdelen zijn net zo eenvoudig als het indrukken van Ctrl + F en typ de tekens waarnaar u wilt zoeken.

Een GUI maakt alles gemakkelijk, maar wat gebeurt er als u alleen vanaf de opdrachtregel kunt werken en u wilt controleren hoe vaak een woord, zin of teken in een tekstbestand voorkomt? Het is bijna net zo eenvoudig als bij het gebruik van een GUI, zolang je maar de juiste opdracht hebt en ik je ga vertellen hoe het moet.

Stel dat je een example.txt-bestand hebt met de zinnen:

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.

Je kunt de grep-opdracht gebruiken om het aantal keren te tellen dat "mauris" in het bestand verschijnt, zoals weergegeven.

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

Als u alleen grep -c gebruikt, wordt het aantal regels geteld dat het overeenkomende woord bevat in plaats van het totale aantal overeenkomsten. De -o optie is wat grep vertelt om elke match in een unieke regel uit te voeren en wc -l vertelt vervolgens wc om het aantal regels te tellen. Op deze manier wordt het totale aantal overeenkomende woorden afgeleid.

Een andere aanpak is om de inhoud van het invoerbestand te transformeren met de opdracht tr, zodat alle woorden op één regel staan en vervolgens grep -c te gebruiken om het aantal overeenkomsten te tellen.

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

Is dit hoe u het voorkomen van woorden vanaf uw terminal zou controleren? Deel uw ervaring met ons en laat ons weten of u een andere manier heeft om de taak te volbrengen.