Tengo un archivo de texto que contiene tweets y «debo contar el número de veces que se menciona una palabra en el tweet Por ejemplo, el archivo contiene:

Apple iPhone X is going to worth a fortune The iPhone X is Apple"s latest flagship iPhone. How will it pit against it"s competitors? 

Y digamos que quiero contar cuántas veces se menciona la palabra iPhone en el archivo. Así que esto es lo que he probado.

cut -f 1 Tweet_Data | grep -i "iPhone" | wc -l 

Ciertamente funciona pero estoy confundido acerca del comando «wc» en Unix. si intento algo como:

cut -f 1 Tweet_Data | grep -c "iPhone" 

donde se usa -c en su lugar? Ambos producen resultados diferentes en un archivo grande lleno de tweets y estoy confundido sobre cómo funciona. ¿Qué método es la forma correcta de contar la ocurrencia?

Comentarios

Responder

Dado ese requisito, use un grep GNU (para la -o opción ), luego páselo por wc para contar el número total de ocurrencias:

$ grep -o -i iphone Tweet_Data | wc -l 3 

Sencillo grep -c en los datos contará el número de líneas que coinciden, no el número total de palabras que coinciden. El uso de la opción -o le dice a grep que genere cada coincidencia en su propia línea, sin importar cuántas veces se haya encontrado la coincidencia en la línea original.

wc -l le dice a la utilidad wc que cuente el número de líneas. Después de que grep pone cada coincidencia en su propia línea, este es el número total de apariciones de la palabra en la entrada.


Si GNU grep no está disponible (o lo desea), puede transformar el ingrese con tr para que cada palabra esté en su propia línea, luego use grep -c para contar:

$ tr "[:space:]" "[\n*]" < Tweet_Data | grep -i -c iphone 3 

Respuesta

El método más fácil es

grep -wc "your_text" FileName 

para ti será,

grep -wc "iPhone" Tweet_Data 

Comentarios

  • Respuesta muy limpia, sin embargo, si coinciden con una palabra como ' cool ' solo coincidirá con cool y NO ccooll, así que tenga en cuenta que los espacios alrededor de la palabra importan.
  • El resultado será incorrecto cuando la palabra aparezca más de una vez en una línea.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *