Com comptar les ocurrències de paraules en un fitxer de text


Els processadors de textos de la interfície gràfica d'usuari i les aplicacions de presa de notes tenen indicadors d'informació o detalls per als detalls del document, com ara el recompte de pàgines, paraules i caràcters, una llista d'encapçalaments en els processadors de textos, una taula de continguts en alguns editors de notes, etc. l'aparició de paraules o frases és tan fàcil com prémer Ctrl + F i escriure els caràcters que voleu cercar.

Una GUI ho fa tot fàcil, però què passa quan només podeu treballar des de la línia d'ordres i voleu comprovar el nombre de vegades que apareix una paraula, frase o caràcter en un fitxer de text? És gairebé tan fàcil com ho és quan utilitzeu una GUI sempre que tingueu l'ordre correcte i estic a punt d'explicar-vos com es fa.

Suposem que teniu un fitxer example.txt que conté les frases:

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.

Podeu utilitzar l'ordre grep per comptar el nombre de vegades que \mauris\ apareix al fitxer tal com es mostra.

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

L'ús de grep -c només comptarà el nombre de línies que contenen la paraula coincident en lloc del nombre de coincidències totals. L'opció -o és la que diu al grep que emet cada coincidència en una línia única i després wc -l diu a wc que compti el nombre de línies. Així és com es dedueix el nombre total de paraules coincidents.

Un enfocament diferent és transformar el contingut del fitxer d'entrada amb l'ordre tr de manera que totes les paraules estiguin en una sola línia i després utilitzar grep -c per comptar aquest recompte de coincidències.

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

És així com comprovaríeu l'aparició de paraules des del vostre terminal? Comparteix la teva experiència amb nosaltres i fes-nos saber si tens una altra manera d'aconseguir la tasca.