BASH – Buscar “TEXTO” en múltiples archivos pasados como parámetros al SCRIPT.-

En este ejemplo, lo que se desea es buscar un cierto TEXTO en múltiples archivos, pasados como parámetros al SCRIPT, y mostrar en pantalla los archivos que contiene el TEXTO buscado. El SCRIPT prueba.sh contiene el siguiente código :

#!/bin/bash
patron='10.23.1.123'
for i in $*
do
    linea=`grep -n $patron $i`
    if [ "${linea:-NULL}" = "NULL" ]; then
        continue
    else
        echo "Se encontro \"$patron\" en el archivo \"$i\""
    fi
done

Ejecutamos el SCRIPT :

bash prueba.sh arch1.txt arch2.txt arch3.txt arch4.txt arch5.txt arch6.txt arch7.txt arch8.txt arch9.txt arch10.txt 

Al ejecutarlo nos presentaría la siguiente información (Si encuentra el PATRON buscado) :

Se encontro "10.23.1.123" en el archivo "arch2.txt"
Se encontro "10.23.1.123" en el archivo "arch6.txt"
Se encontro "10.23.1.123" en el archivo "arch8.txt"

Este SCRIPT es solo un ejemplo, el cual se puede adaptar para cualquier situación que se requiera, eliminar lineas, cambiar texto, etc…
A grandes rasgos lo que realiza es :
1.- Mediante un ciclo FOR recorre o iteramos sobre todos los parámetros (archivos) pasados como parámetros para la ejecución del SCRIPT.
2.- Busco el patrón indicado y el resultado de la búsqueda lo almaceno en la variable “linea”.
3.- Mediante “if” verificamos si la variables “linea” esta vaciá o no ha sido definida (NULL), de ser así, significa que el patrón no fue encontrado y mediante la instrucción “continue” pasa a la siguiente iteración de parámetros (siguiente archivo).-
4.- Al pasar a la intrucción “else” significa que el patrón fue encontrado y por lo tanto lo imprime en pantalla.-

Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

1 respuesta a BASH – Buscar “TEXTO” en múltiples archivos pasados como parámetros al SCRIPT.-

  1. Marco dijo:

    Muchas gracias.

    Encontre tu pagina y me agrada lo que veo.

    Sigue asi.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.