¿Cómo puedo hacer que el comando grep localice ciertas palabras en los archivos especificados por las rutas encontradas por el comando de localización?
locate my.cnf | grep user
(Quiero que el comando grep busque la palabra "usuario" en los archivos encontrados para el comando de localización)
Respuesta aceptada:
Si sus resultados de búsqueda están seguros de devolver rutas sin espacios, puede usar xargs
así:
locate my.cnf | xargs grep user
Sin embargo, debe adquirir el hábito de protegerse para manejar el caso en el que una ruta o un nombre de archivo pueda contener un espacio diciéndole a xargs
usar null
como separador y diciendo locate
(o cualquier programa que esté usando para devolver cadenas) para enviarlo también como separador de esta manera:
locate -0 my.cnf | xargs -0 grep user
Esto funcionaría incluso si su ruta incluye espacios en blanco como /name with space/my.cnf
.