Necesito Un Shell Script Que Compare Versiones


Ir a la página Anterior  1, 2, 3, 4  Siguiente

Objetivo: Re: Necesito Un Shell Script Que Compare Versiones
shordi escribió:  
Decía el entrenador de boxeo en la esquina: "Lo que tienes que hacer es darle más que él a tí".... y era un buen plan pero...


Acabo de ver un curso para aprender hacer justo lo que quieres, voy a tener que pasar un proceso de aprendizaje pero voy a intentar hacer lo que describes, espero que no tarde mucho en hacerlo.

Parece que no es muy muy dificil pero bueno no lo he hecho nunca y ya se sabe una cosa es verlo por encima y otra probarlo.

Perfil MP  
Objetivo: Re: Necesito Un Shell Script Que Compare Versiones
shordi escribió:  
La idea es: Tengo un directorio A lleno de paquetes de instalación de programas generados por gambas. Es decir:

miprogram_0.0.1-0ubuntu1_all.deb
elotroprograma_0.0.1-0ubuntu1_all.deb
otroprogramamas_1.0.4-0ubuntu1_all.deb
yotro.0.0.3-ubuntu1_all.deb

en otro directorio B tengo algunas nuevas versiones

miprogram_0.0.2-0ubuntu1_all.deb
programanuevo_0.0.1-0ubuntu1_all.deb

Necesito un Script que me copia las nuevas versiones de B a A, eso es facilito, y que averigue si hay versiones viejas y las elimine, que es donde no me aclaro.
Llevo haciéndolo a ojo desde siempre, pero la lista crece y crece y cada vez es más difícil.

Por su entorno es algo que no se pueden resolver con gambas, ha de ser un Shell Script.


Una pregunta, ¿puede ser en python por ejemplo ó no?

Es que python es muy rico para hacer lo que pides. Pero yo nunca lo he usado bajo Linux siempre bajo Windows, supongo que funciona igual, verdad?

Acabo de comprobar desde el terminal que si funciona perfectamente Python. Ahora solo queda saber si "shordi" me dice que le da igual usar Python para esto o no.

Quedo a la espera.

última edición por gambafeliz el Sabado, 31 Agosto 2019, 19:08; editado 2 veces
Perfil MP  
Objetivo: Re: Necesito Un Shell Script Que Compare Versiones
No, es un servidor sin casi nada instalado mas que los programas que sirve. Shell Script, exclusivamente.

Perfil MP  
Objetivo: Re: Necesito Un Shell Script Que Compare Versiones
No Shordi, que no va por no hacer el script, sino que, no comprendo por que no en gambas para la terminal.
Que gambas no este instalado en el servidor no es una razón de peso para no hacer un script en gambas. Solo bastaría con instalar lo necesario para que corra, no todo el ide.
Así que antes de hacer una sola linea de código para resolver este problema quería saber por que no quieres en gambas.
Saludos.

Perfil MP  
Objetivo: Re: Necesito Un Shell Script Que Compare Versiones
shordi escribió:  
No, es un servidor sin casi nada instalado mas que los programas que sirve. Shell Script, exclusivamente.


Entonces shell script es con lo que lo voy hacer. Y es el curso que estoy viendo justo ahora para intentar ayudarte. Aunque en python es seguro que es mas facil por el poder que tiene, pero donde manda capitán no manda marinero. ¿no?

Perfil MP  
Objetivo: Re: Necesito Un Shell Script Que Compare Versiones
De momento hice esto

#!/bin/bash

# Leyendo directorio A
find '/home/bonavena/stable/' -name '*.deb' | while read -r f
do
b=`echo "${f##*/}"`
p=`echo $b | cut -d "_" -f 1`
v=`echo $b | cut -d "_" -f 2`
echo "Paquete: "$p
echo "Versión: "$v
# falta crear la lista de paquetes estables y su version que de momento no se como hacer
done

# Leyendo directorio B
find '/home/bonavena/testing/' -name '*.deb' | while read -r f
do
b=`echo "${f##*/}"`
p=`echo $b | cut -d "_" -f 1`
v=`echo $b | cut -d "_" -f 2`
echo "Paquete: "$p
echo "Versión: "$v
# falta crear la lista de paquetes de pruebas y su version que de momento no se como hacer
done

# Luego en esta parte falta analizar para cada uno de los itemes de A si existe el mismo paquete en #!/usr/bin/env bash
#Si es más reciente el de A borrar (o mover el de B) y luego copiar el de A en #!/usr/bin/env bash


Perfil MP  
Objetivo: Re: Necesito Un Shell Script Que Compare Versiones
tincho escribió:  
De momento hice esto

#!/bin/bash

# Leyendo directorio A
find '/home/bonavena/stable/' -name '*.deb' | while read -r f
do
b=`echo "${f##*/}"`
p=`echo $b | cut -d "_" -f 1`
v=`echo $b | cut -d "_" -f 2`
echo "Paquete: "$p
echo "Versión: "$v
# falta crear la lista de paquetes estables y su version que de momento no se como hacer
done


Hola, tincho

Como a mi me falta aprender script y veo que tu sabes, ¿te digo como yo lo haría?

Así lo haría yo.

1. Leer el directorio A y enviar copia a un archivo de texto llamado "directorio A.txt"
2. Leer el directorio B y enviar copia a un archivo de texto llamado "directorio B.txt"
3. Después mediante cadenas, leo el archivo "directorio B.txt" y lo comparo con las cadenas "directorio A.txt" donde:
3.1. Si no existe B en A copio esa línea completa a un nuevo archivo que le voy a llamar "Enviar a directorio A.txt" (me da igual la versión, simplemente no esta)
4. Leemos el archivo "Enviar a directorio A.txt" y copiamos cada archivo que diga en el txt al Directorio A.

Y creo que listo por que aquí no importa la versión solo importa que no exista lo que hay en B en A, ya que si es distinto para A es nuevo. Y lo que importa es que A no sea igual, ojo, a igual nombre, pero si es importante la versión, que me temo que sí, entonces hacemos los puntos anteriores con la fecha de creación o la de modificación, y aplicamos el mismo razonamiento y si no me equivoco todo debe ser completamente correcto.

Ahora me falta hacerlo, pero veo que tu ya sabes hacerlo.

En fin ahí lo dejo.

Saludos.

Perfil MP  
Objetivo: Re: Necesito Un Shell Script Que Compare Versiones
Citar:
Y creo que listo por que aquí no importa la versión solo importa que no exista lo que hay en B en A, ya que si es distinto para A es nuevo. Y lo que importa es que A no sea igual, ojo, a igual nombre, pero si es importante la versión, que me temo que sí, entonces hacemos los puntos anteriores con la fecha de creación o la de modificación, y aplicamos el mismo razonamiento y si no me equivoco todo debe ser completamente correcto.

Clarificando ideas: Llamemos a los directorios "Viejo","Nuevo" y un tercero llamado "Actualizado"

Si uno de Viejo no está en Nuevo, se copia a Actualizado
Si uno de Nuevo no está en Viejo, se copia a Actualizado
Si uno de Nuevo sí está en Viejo, pero la versión de Viejo es menor, se copia a Actualizado

Creo que se puede hacer, de hecho el primer supuesto que puse así lo contemplaba, sin el directorio Actualizado, pero así la lógica, me parece, es más fácil de entender.
Para mí el problema es la tercera opción, la comparación de versiones.(No vale por fechas o por tamaño)

Saludos

Perfil MP  
Objetivo: Re: Necesito Un Shell Script Que Compare Versiones
Citar:

Una pregunta, ¿puede ser en python por ejemplo ó no?

Es que python es muy rico para hacer lo que pides. Pero yo nunca lo he usado bajo Linux siempre bajo Windows, supongo que funciona igual, verdad?

Acabo de comprobar desde el terminal que si funciona perfectamente Python. Ahora solo queda saber si "shordi" me dice que le da igual usar Python para esto o no.




No mientes la soga en la casa del ahorcado!.

Pssss. Ojo que Python tiene opositores en esta comunidad. Desde la península Itálica hasta de Hispania e incluso del Nuevo Mundo.
En el fondo es broma. Mis compañeros aprenden basic, Python tiene sus semejanzas con el basic aunque tiene sus diferencias.
La falta de tiempo y los gustos personales hacen el resto.

Efectivamente funcionará igual.

Creo que es más adecuado como dice Shordi, hacerlo en Shell script y luego si hay tiempo se verá otras posibilidades.

En principio creo que es importante conocer los recursos "primarios" del sistema.

Saludos

Objetivo: Re: Necesito Un Shell Script Que Compare Versiones
Shell escribió:  
Citar:

Una pregunta, ¿puede ser en python por ejemplo ó no?

Es que python es muy rico para hacer lo que pides. Pero yo nunca lo he usado bajo Linux siempre bajo Windows, supongo que funciona igual, verdad?

Acabo de comprobar desde el terminal que si funciona perfectamente Python. Ahora solo queda saber si "shordi" me dice que le da igual usar Python para esto o no.




No mientes la soga en la casa del ahorcado!.

Pssss. Ojo que Python tiene opositores en esta comunidad. Desde la península Itálica hasta de Hispania e incluso del Nuevo Mundo.
En el fondo es broma. Mis compañeros aprenden basic, Python tiene sus semejanzas con el basic aunque tiene sus diferencias.
La falta de tiempo y los gustos personales hacen el resto.

Efectivamente funcionará igual.

Creo que es más adecuado como dice Shordi, hacerlo en Shell script y luego si hay tiempo se verá otras posibilidades.

En principio creo que es importante conocer los recursos "primarios" del sistema.

Saludos


No digo nada, me parece perfecto todo lo que dices.

Yo llego poco pero suficiente para hacer un programa en python tan divertido como el que ya hice. De echo como no sabia lo que comentas. Tonto e ingenuo tras verlo ayer del baul de mis recuerdos, he estado apunto de ofrecerle a todos ustedes, ya que es un programa que lo hice a medida para mi y para mi es muy interesante.

Pero bueno lo dejo en su caja y seguiré usando lo yo solo. Perdón nunca quise insinuar ninguna molestia a ningún colega.

Saludos por cierto amigo Shell.

Ahh y gracias por la aclaratoria al maestro shordi que veo que no me enteré muy bien, pero el siempre atento para arreglar cualquier duda o entuerto.

Saludos a todos

Perfil MP  
Ir a la página Anterior  1, 2, 3, 4  Siguiente

Página 2 de 4


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.134s (PHP: -12% SQL: 112%)
Consultas SQL: 23 - Debug off - GZIP Activado