BASH – Script shell consulta archivo de texto.-

Este SCRIPT realiza consultas sobre un archivo con un formato en particular, los campos estan separados por (;) punto y coma :

#!/bin/bash
esp="\\n                  "
echo "\\n"
opcion=0
fech=`date +%Y%m%d`
fecha=`date +%d%m%Y`
uranos="/usr01/home/server/logs/servers.txt"
trap "continue" 2 3
until test $opcion = 99
do
  clear
  date '+%n          Fecha : %d/%m/%Y          Hora  : %H:%M Hrs.'
  echo "
         +---------------------------------------------+
         |       CONSULTA SERVIDORES POR MOTOR         |
         +---------------------------------------------+
           30-03-2015 V.1                 servxmot.sh


                                                                       "
read -p "  Servidores  (Separados por espacio)      :  " servi
servicio=(`echo ${servi}`)
conser=${#servicio[*]}
echo "     "
read -p "  Para Ejecutar digite tal como aparece Mayuscula y minuscula  [Si] :   " opcion
echo ""
echo "-----------------------------------------------------------------------------"
if [ ! "$opcion" ]
   then break
fi
case $opcion in
   Si)
cat $uranos | while read line;do
# Aqui se cabia todos los ";" por espacios " "
lineas=${line//;/ }
servidor=(`echo ${lineas}`)
conmot=${#servidor[*]}
j=1
m=0
while [ $j -lt $conmot ]
do
k=0
   while [ $k -lt $conser ]
     do
          if [ ${servidor[$k]} == 0 ]
          then
          (( k=k+1 ))
          continue
          fi
          if [ "${servidor[$j]}" -eq "${servicio[$k]}" ] && [ $m == 0 ]
          then
          presenta=${servidor[0]}
          presenta=$presenta" "urano${servicio[$k]}
          (( k=k+1 ))
          (( m=m+1 ))
          continue
          fi
          if [ "${servidor[$j]}" -eq "${servicio[$k]}" ]
          then
          presenta=$presenta" "urano${servicio[$k]}
          (( k=k+1 ))
          continue
          fi
          (( k=k+1 ))
     done
   (( j=j+1 ))
done
   if [ -z "$presenta" ]
      then
         m=0
      else
         echo $presenta
      fi
   m=0
   presenta=
done
echo -e "---------------------------    FIN CONSULTA   -------------------------------"
read fin
echo "";;
    *)
echo "";;
esac
done
Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *