Cómo buscar cadenas de caracteres en archivos en Ubuntu
En esta página hay varios ejemplo de como buscar una cadena de caracteres en Ubuntu.
Buscar cadena en Archivo
grep cadena nombrearchivo
grep name file.txt
Buscar cadena no teniendo en cuenta mayúsculas ni minúsculas
grep -i cadena nombrearchivo
grep -i name file.txt
Buscar cadena en los archivos del directorio actual
grep cadena .
grep name .
Buscar ficheros que no conteng la cadena
grep -L cadena .
grep -L "foo" *
Buscar cadena recursivamente
grep -r cadena .
grep -r name .
Buscar cadena recursivamente y algunas extensiones
grep cadena -r . --include=*.miextension
grep cadena -r . --include=*.{miextension,miextension2}
grep "name=Oscar" -r . --include=*.js
* si usas include sólo buscará en los archivos include
Buscar cadena recursivamente excluyendo algunas extensiones
grep cadena -r . --exclude=*.{myextension2}
grep "Serializable" -rl . --exclude=*.{jar,class,svn-base,index}
Buscar cadena recursivamente incluyendo algunas extensiones y excluyendo otras
grep cadena -r . --include=*.myextension --exclude=*.myextension2
grep cadena -r . --include=*.{myextension,myextension2} --exclude=*.{myextension3,myextension2}
grep "name=Oscar" -r . --include=*.{js,html} --exclude=*.js
*El anterior ejemplo no mostrará la cadena aunque este en los en los archivos js
Buscar cadena recursivamente mostrando solamente el nombre del archivo
grep string -rl . --include=*.myextension
grep "name=Oscar" -rl . --include=*.js
Buscar archivos con find y buscar cadena en los archivos encontrados
find . -name '*.extension' -exec grep string +
find . -name '*.txt' -exec grep Mytext {} +
find . -type f \( -name '*.htm' -or -name '*.html' \) -exec grep -i "mystring" {} +
Notas
- Usa comillas "dobles" para buscar una cadena si contiene espacios.
- No pongas espacios entre las extensiones si usas llaves {txt, html}
- No uses llaves para una extension {html}