Article updated on

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}