Buscar Texto Dentro de Archivos en Linux
Buscar Texto Dentro de Archivos en Linux. ¿Tienes una gran colección de archivos de texto regados en todas partes? Y no sabes encontrar el que necesitas. Te tenemos la solución! En este tutorial te mostramos cómo buscar una cadena de texto dentro de los archivos en Linux.
Ahora, puedes buscar en miles de archivos en cualquier servidor basado en Linux o Unix. Lo puedes hacer con el comando grep. Con grep puedes ver dentro de los archivos en Linux.
Los siguientes comandos te mostraran la sintaxis del comando grep
grep "text string to search†directory-path
grep [option] "text string to search†directory-path
grep -r "text string to search†directory-path
grep -r -H "text string to search†directory-path
egrep -R "word-1|word-2†directory-path
egrep -w -R "word-1|word-2†directory-path
A continuación, te mostraremos un ejemplo de sus usos
Para este ejemplo, busque una cadena llamada 'redeem reward' en todos los archivos de texto (* .txt) ubicados en el directorio / home / tom /, use:
$ grep "redeem reward" /home/tom/*.txt
$ grep "redeem reward" ~/*.txt
TAREA. BUSCAR TODOS LOS SUBDIRECTORIOS
Puede buscar el texto para todos los archivos debajo de cada directorio, con la opción -r, de esta forma:
$ grep -r "redeem reward" /home/tom/
$ grep -R "redeem reward" /home/tom/
TAREA. SOLO MOSTRAR NOMBRES DE ARCHIVOS
El comando grep imprime las líneas correspondientes. Puede usar la opción -H para imprimir el nombre del archivo, de esta forma:
$ grep -H -r "redeem reward" /home/tom
Salidas de muestra:
filename.txt: redeem reward
foobar.txt: redeem reward
...
Para mostrar el nombre del archivo, puede usar el siguiente comando:
$ grep -H -R vivek /etc/* | cut -d: -f1
Salidas de muestra:
filename.txt
foobar.txt
...
TAREA. SUPRIMIR LOS NOMBRES DE LOS ARCHIVOS
El comando grep muestra el resultado en una línea, y está precedido por el nombre del archivo en el que se encontró en el caso de varios archivos. Puede escribir la opción -h para suprimir la inclusión de los nombres del archivo en el resultado:
$ grep -h -R 'main()' ~/projects/*.c
TAREA. MOSTRAR SOLO PALABRAS
Puede seleccionar solo aquellas líneas que contienen coincidencias y que forman palabras completas, para este caso puede usar la opción -w. En este ejemplo, busque la palabra 'getMyData ()' solo en ~ / projects / dirctory:
$ grep -w -R 'getMyData()' ~/projects/
TAREA: BUSCAR DOS O MÁS PALABRAS
Use el comando egrep de la siguiente manera:
$ egrep -w -R 'word1|word2' ~/projects/
TAREA. OCULTAR SPAM DE ADVERTENCIA
El comando grep puede generar un mensaje de error, debido a permisos y otros problemas como los siguientes:
No existe dicho archivo o directorio
No existe tal dispositivo o dirección
Permiso denegado
Para ocultar todos los errores o mensajes de advertencia de spam generados por el comando grep, agregue el comando 2 / dev / null a grep. Esto enviará y ocultará la salida no deseada a / dev / null device, por ejemplo puedes usarlo de la siguiente manera:
$ grep -w -R 'getMyData()' ~/projects/ 2>/dev/null
TAREA. IGNORAR CASO
Nuestro ejemplo final ignora las distinciones de casos tanto en el patrón de búsqueda como en los archivos de entrada, puede usar el siguiente comando:
grep -i -R 'word' /path/to/dir
grep -i -r 'income tax' ~/accounting/
Esperamos que este tutorial te haya sido útil y esperamos tus buenos comantarios ;) ;)