gestione file XML con bash script

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

gestione file XML con bash script

Messaggio da gsflash »

Ciao a tutti, sto cercando di fare lo script un pochino complicato ma non intendo di mollare :-)

ho il file versione.xml che nell'interno è fatta:
<current-versione = 3.20>
...............FOLDER\3.20\SCRIPT
........FOLDER\UTILITY\3.20\
</current-versione>
<versione = 3.10>
...............FOLDER\3.10\SCRIPT
........FOLDER\UTILITY\3.10\
</versione>

quando devo rilanciare con la nuova versione 3.30, con lo script che sto facendo:
COPIARE il file versione.xml in versione$Versione_attuale.xml
poi AGGIUNGERE il blocco xml che ho già creato altro file come "template" vers_templ.xml che ha il variabile secondo il parametro che inserisco, in interno:

<current-versione = "$New_vers">
...............FOLDER\"$New_vers"\SCRIPT
........FOLDER\UTILITY\"$New_vers"\
</current-versione>

in questo blocco template potrei aggiungere in versione.xml con la nuova versione, sarebbe possibile?
Ora allego il codice che ho creato:

Codice: Seleziona tutto

#!/bin/sh
clear
while : ; do
    echo -e "   :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::   "
    echo -e "..::||||GENERA - Interfaccia a menu per generare scripts ||||::.."
    echo -e "   :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::   "
    echo
    echo "              a) rilasciare la versione "
    echo
    echo "              b) rimettere la versione "
    echo
    echo "              c) sposta il file SQL appena generato"
    echo
    echo "              q) Uscita"
    echo
    echo "              ############################################"
    echo
    echo
    echo -ne "                      Scegli opzione: [ ]\b\b"
    read -n 1 q
    echo
    case $q in
    a)  echo " "
        echo -n "        Digitare la versione del CD: "
        read vers

{

#vers_attuale=$(grep "current-version" version.xml | sed 's/<current-version number=//g' | sed 's/"//g' | sed 's/>//g')

#dich. variabili

VERSIONE="$vers"
VERSIONE_ATT=$(grep "<current-version number=" version.xml | sed 's/<current-version number=//g' | sed 's/"//g' | sed 's/>//$
DATABUILD=$(date '+%Y%m%d')



## esecuzione
if [ -f version.xml ]
then
echo "backup del file version.xml dell'ultima versione "$VERSIONE_ATT"...."
cp version.xml version_"$VERSIONE_ATT".xml
else
echo "non esistente il file VERSION.XML"
fi
## fine
} || less
;;

    q) clear
        echo " "
        echo " "
        echo "           |||||||||||||||||||||||||||||||||||"
        echo "           ||Grazie di aver usato GENERA ;-)||"
        echo "           |||||||||||||||||||||||||||||||||||"
        echo " "
        echo " "
        exit 0
         ;;
    *) echo "OPZIONE ERRATA, RIPROVA"
        sleep 2
        ;;
    esac
done

quella di copia versione.xml al versione attuale, ha funzionato però risulta versione_?3.20.xml, come mai? e in resto mi manca soltnato quello di aggiungere il blocco template della nuova versione da rilanciare....
grazie :D
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
Avatar utente
Laycastle
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1183
Iscrizione: sabato 9 aprile 2011, 21:54
Desktop: KDE 4.8
Distribuzione: Gentoo ~amd64
Località: Torino

Re: gestione file XML con bash script

Messaggio da Laycastle »

Ciao,
capisco che molto spesso si scriva in fretta, ma il messaggio è praticamente illeggibile. Non sono stato in grado di capire cosa ti serve.
la via più breve tra due punti è l'arabesco.
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

Re: gestione file XML con bash script

Messaggio da gsflash »

mi dica di quale non ha capito il messaggio.
Così provo ad sesprimere meglio
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

Re: gestione file XML con bash script

Messaggio da gsflash »

ci provo lo stesso:

ho il template.xml che serve per aggiungere il blocco nel version.xml
esempio:

nel template.xml
<current-version = "$Vers_New">
</current-version>

nel script inserisco il numero 3.30 come nuova versione

e inserisco il blocco template.xml inserendo 3.30 dove ce il variabile $Vers_New, e poi aggiunge il blocco nel version.xml sopra quel versione precedente (3.20)
come si fa?
Grazie
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

Re: gestione file XML con bash script

Messaggio da gsflash »

sono riuscito a fare in questo modo:

sed 's/$nome/qualcuno/g' text.txt | sed '1s/^//' >> text2.txt

ma solo non riesco a mettere in top line, perchè lo mette sempre all'ultimo, lo metterei alla terza riga del file....
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: gestione file XML con bash script

Messaggio da Zoff »

Prova così:

Codice: Seleziona tutto

sed -i '1i$(sed 's/$nome/qualcuno/g' text.txt | sed '1s/^//')' text2.txt
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

Re: gestione file XML con bash script

Messaggio da gsflash »

sono andato a vedere su text2.txt e nella prima riga risulta:

$(sed s//qualcuno/g text.txt | sed 1s/^//)
Versione
ciao
monica
come stai?
sei monica giusto?
ciao

ciao
gabriella
come stai?
sei gabriella giusto?
ciao

Vorrei che fosse inserito dopo la riga della Versione
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: gestione file XML con bash script

Messaggio da Zoff »

cambia 1i in 2i
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

Re: gestione file XML con bash script

Messaggio da gsflash »

già capito da 1i in 2i, ma il risultato che ho postato prima, hai visto? è stato postato in
$(sed s//qualcuno/g text.txt | sed 1s/^//)

invece di
ciao
qualcuno
come stai?
sei qualcuno giusto?
ciao
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: gestione file XML con bash script

Messaggio da Zoff »

cambia gli apici piu' esterni da singoli (') a doppi ("):

Codice: Seleziona tutto

sed -i "2i$(sed 's/$nome/qualcuno/g' text.txt | sed '1s/^//')" text2.txt
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

Re: gestione file XML con bash script

Messaggio da gsflash »

errore:
sed: -e expression #1, char 42: extra characters after command
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

Re: gestione file XML con bash script

Messaggio da gsflash »

nessuna risposta?
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

Re: gestione file XML con bash script

Messaggio da gsflash »

ho finito tutti gli scripts, mi manca solo questo che dovrei mettere al TOP LINE :( :( :(
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gestione file XML con bash script

Messaggio da cristian_c »

Sinceramente si segue poco il filo della discussione. Comunque dove vorresti fosse stampato il numero di versione precisamente? ;)
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

Re: gestione file XML con bash script

Messaggio da gsflash »

allora, per ora è così:

Codice: Seleziona tutto

<xml>
<installazione>
<versione ="3.20">
..........
</versione>
<versione ="3.19">
..........
</versione>
<versione_corrente="3.21">
.........
</versione_corrente>
e vorrei che fosse così:

Codice: Seleziona tutto

<xml>
<installazione>
<versione_corrente="3.21">
.........
</versione_corrente>
<versione ="3.20">
..........
</versione>
<versione ="3.19">
..........
</versione>
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gestione file XML con bash script

Messaggio da cristian_c »

Per caso nel comando avevi utilizzato l'opzione -e? ;)
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

Re: gestione file XML con bash script

Messaggio da gsflash »

avevo utilizato con -2i ma non ha funzionato, potresti postare qui un esempio?
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gestione file XML con bash script

Messaggio da cristian_c »

gsflash ha scritto:avevo utilizato con -2i ma non ha funzionato, potresti postare qui un esempio?
Zoff ti aveva suggerito un comando, mentre tu hai postato un output relativo a un comando diverso e chiaramente questo particolare non l'avevi specificato ;)
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
gsflash
Prode Principiante
Messaggi: 108
Iscrizione: mercoledì 21 marzo 2007, 14:51

Re: gestione file XML con bash script

Messaggio da gsflash »

ho copiato come ha suggerito zoff, non ha funzionato e ho postato l'output. ho scritto

sed -i "2i$(sed 's/$nome/qualcuno/g' text.txt | sed '1s/^//')" text2.txt

e anche come ha detto dopo Zoff di mettere doppio apice

sed e ''2i$(sed 's/$nome/qualcuno/g' text.txt | sed '1s/^//')'' text2.txt

non vanno come ho richiesto, come non avrei specificato? :-/
..:: GSFLASH ::..
MCTS (Microsoft Certified Technology Specialist) / ACP (Adobe Certifed Professional) / OCP (Oracle Certifed Professional)/ ECDL / ATCP (Apple Techincal Certified Professional)/ITIL v.3
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gestione file XML con bash script

Messaggio da cristian_c »

Puoi postare l'output del comando postato da Zoff?
P.S. Utilizza il tag 'code' per postare l'output di terminale qui sul forum ;)
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 12 ospiti