He creado un archivo de texto con 1000 letras mayúsculas y minúsculas al azar:

cat /dev/urandom | tr -dc "a-zA-Z0-9" | head -c 1000 > file1 

¿Cuántas veces aparece la palabra «gato» en este archivo, usando grep y wc?

Lo hice de esta manera:

grep -ic cat file1 

Pero cuenta las líneas en las que aparece, mientras yo quiero comprobar cuántas veces aparece en esa línea. ¿Alguna idea?

Comentarios

  • fyi, tr puede usar [: alnum:] en lugar de az .. . Y desea contar cuántas veces aparece en todo el archivo, no solo en cada una línea, o en solo una línea en particular (dijo " en esa línea " al final)?

Responder

El trabajo que tengo que hacer es encontrar cuántas veces en este archivo, aparece el mundo «cat» usando el comando grep y wc.

Prueba:

grep -oi cat file1 | wc -l 

Ejemplo:

$ cat file1 foo cat bar zoo cat random text cat dog foobar cat end! 

^ Tenemos cuatro ocurrencias de cat anterior.

grep -oi cat file1 | wc -l 4 

De man grep (mi énfasis):

 -o, --only-matching Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line. 

Comentarios

  • El comando anterior encontrará todas las subcadenas cat incluso si son parte de otra palabra como bob gato y gato alougue. Pero el archivo se crea de modo que no contenga espacio, ni freno de palabra ni salto de línea. Por lo tanto, esto es solo una nota.
  • @schweik Sí, eso es cierto. No agregué límites de palabras a mi respuesta.

Deja una respuesta

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