una texto regulares palabra expresiones exacta dentro comando cadena buscar archivos archivo linux bash grep find

linux - texto - grep buscar palabra exacta



Encuentre todos los archivos cuyos nombres contengan una cadena dada y resáltelo (2)

Para mayor comodidad, puede crear una función BASH para esto:

hlt() { find . -iname ''*''"$1"''*'' | grep --color "$1"; }

y llámalo como:

hlt foo

Me encuentro escribiendo este comando mucho:

find . -iname "*foo*" | fgrep -i "foo"

Para buscar todos los archivos y carpetas que tienen "foo" en sus nombres, y para resaltar la parte correspondiente en los resultados.

Eso no es muy conveniente. ¿Cuál sería una solución más simple? ¿Debo escribir un comando personalizado para esto?


Si está utilizando bash, eche un vistazo a Make a Bash alias que toma un parámetro? para saber cómo hacer un "comando personalizado", también tenga en cuenta que grep sin -i distingue entre mayúsculas y minúsculas mientras que -iname no es así, puede que le falten algunos hilights mixtos. En la nota lateral, fgrep debería ser más rápido que grep y probablemente tenga menos recursos :)