Tarea:
1) encontrar una cadena 'decor' dentro de los archivos en un directorio
2) obtener el número de ocurrencias para la decoración de cada archivo que lo tenga
La primera parte del problema se resuelve parcialmente con find . -type f | grep -i decor *
Pero esto no parece grep
para todos los archivos que se encuentran desde find
sino más bien lo que está encima del directorio actual.
¿Tengo que usar algo que no sea *
para grep
grep para archivos encontrados desde encontrar?
¿Qué se debe canalizar para que se muestre con un nombre de archivo y la cantidad de incidencias para la decoración de cada archivo?
find2perl . -type f -exec grep -icH {} \;
para ver si estoy dispuesto a agregar el grep -v: 0 \ $ parte. Parece factible, tal vez más tarde durante Jeopardy."Archivos en un directorio" no suele significar "y los subdirectorios iside recursivamente". Yo solo usaría
Si también necesita buscar subdirectorios, puede usar buscar, pero conectar los comandos de forma diferente: la tubería simplemente conecta la salida del primer comando a la entrada del segundo. Sin embargo, Grep no espera una lista de archivos en su entrada.
fuente
Puede utilizar la opción -exec.
find . -type f -exec grep decor {} \;
o usa xargs
find . -type f | xargs -i grep decor {}
fuente
decor
que es lo que pidió el OP.TMTOWTDI - Me gusta ver las otras variantes, así que aquí está la mía también:
Solo porque sentí ganas de volver a escribir un Perl 1-liner que funciona igual que un viejo
awk
ejemplo tomado de las páginas de Kernighan y Pike .fuente
perl2find
sugerencia no tan útil , arriba - sólo por diversión. Ya has resuelto mi respuesta, con la misma referencia. ¡Bravo!