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
ywc
.
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.