Consulta con Bash

Comentarios sobre el buen funcionamiento del sistema y como personalizarlo a tus necesidades.

Moderadores: doc, mcun

Responder
linuxzit
Forista Nuevo
Forista Nuevo
Mensajes: 2
Registrado: Lun Abr 21, 2014 4:26 pm

Consulta con Bash

Mensaje por linuxzit »

Hola Amigos,

Les saludo, esperando y agradeciendo por cualquier ayuda que me puedan otorgar, mi consulta es con respecto con un bash el cual necesito realizar, les comento el proceso que deseo realizar :

1.- Subiré un archivo .txt a mi maquina linux, este archivo lo convierto desde formato de texto windows a formato linux.

2.- En este archivo .txt tiene datos con los números 1, 2 y 3, lo cual reemplazare por Malo, Regular y Bueno.

3.- Este mismo archivo reemplazo los valores ; por / . (La idea es ordenar Los datos)

4.- Una vez parseados u ordenados los datos los muevo a una carpeta de respaldo la cual lleva el nombre del año y una subcarpeta del mes en que se realiza el respaldo.

5.- Una vez movido el archivo, procedo a cambiar de formato el archivo desde Linux a Windows.

6.- Una vez convertido procedo a convertirlo en .zip.

El problema es que no me resulta, si bien crea las carpetas y ejecuta el archivo, no dejar el archivo de respaldo ni en formato .zip o txt.

Les dejo el bash para que puedan mirarlo y si pueden me indican en que cometi errores o mucho mejor si me indican como puedo realizarlo de mejor forma.


Muchas gracias



#!/bin/bash

Folder="/prueba"

Year=$(date +%Y)
Month=$(date +%m)

FileClient=$1
NameFile=$2

if [ "$FileClient" = "" ];

then

echo "No ha ingresado el nombre del archivo"

exit
else
if test ! -e "$FileClient";

then

echo "No existe el fichero indicado"

exit

fi

fi

cd $Folder

if test ! -d "$Folder/$Year";

then
mkdir $Year
fi

if test ! -d "$Folder/$Year/$Month";

then
mkdir $Year/$Month
fi

if [ "$NameFile" = "" ];

then

echo "No ha ingresado el nombre del archivo"

exit

fi
echo "Convirtiendo $FileClient de dos a unix....."

dos2unix $FileClient

echo "Parseando informacion de $FileClient para adaptación"
awk '{gsub(/,/,";");print}' $FileClient > $FileClient.tmp1
awk '{gsub(/;1;/,";Malo;");gsub(/;2;/,";Regular;");gsub(/;3;/,";Bueno;");print}' $FileClient.tmp1 > $FileClient.tmp2

echo "Creando archivo .ZIP......"

mv $FileClient.tmp1 $Folder/$Year/$Month/$NameFile-ejec.txt

unix2dos $Folder/$Year/$Month/$FileClient-ejec.txt

zip $Folder/$Year/$Month/$NameFile-ejec.zip $Folder/$Year/$Month/$NameFile-ejec.txt

echo "ZIP $NameFile-eject.zip almacenado en $Folder/$Year/$Month"

fi

exit

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje