|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jun 2005
Messaggi: 4
|
[Script Bash] problema sostituzione stringhe
Buongiorno,
ho un problema con uno script bash . Allora iniziamo col dire che ho 3 file : sostituzione1.txt sostituzione2.txt modello.html nel file sostituzione1.txt c'è: UNO DUE TRE QUATTRO CINQUE nel file sostituzione2.txt c'è: SEI SETTE OTTO NOVE DIECI il modello.html è una cosa del tipo: blabla --stringa1-- bla bla bla bla --stringa2-- blu bli --stringa1-- --stringa2-- ciaociaociao ------------------------------------------------------- Vorrei sostituire nel modello.html --stringa1-- e --stringa2-- rispettivamente con la prima riga di sostituzione1.txt e sostituzione2.txt e questo iterativamente finchè non finiscono le righe in sostituzione1.txt ad esempio blabla UNO bla bla bla bla SEI blu bli UNO SEI ciaociaociao successivamente sarà: blabla DUE bla bla bla bla SETTE blu bli DUE SETTE ciaociaociao Ora veniamo al problema .... sono riuscito a creare uno script che mi sostituisce --stringa1-- ma non riesco a sostituire --stringa2-- ora vi posto lo script: #!/bin/bash #crea_file.sh FILE=`cat sostituzione1.txt` #elenco stringa_sostituire=--stringa1-- echo for file in $FILE do echo $file cat modello.html > appoggio.html cat appoggio.html | sed 's/'$stringa_sostituire'/'$file'/g' > pagina_$file.php; done exit 0 Potete darmi una mano ? Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
non ho capito la sostituzione che devi fare, dal primo file leggi le parole da cercare e dal secondo quelle che le devono sostituire?
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Jun 2005
Messaggi: 4
|
no dal primo le parole che andranno a sostituire --stringa1-- e dal secondo le parole che andranno a sostituire --stringa2--
ad esempio: blabla UNO bla bla bla bla SEI blu bli UNO SEI ciaociaociao --stringa1-- e --stringa2-- del modello.html sono state sotituite con UNO e SEI
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
scusa non capisco, se in sostituzione1.txt ho diverse righe il primo giro --stringa1-- verrà sostituito dalla prima riga del file, ma poi non avverrà alcuna sostituzione perchè tutte le occorrenze saranno già state sostituite dal primo passaggio, no?
|
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Jun 2005
Messaggi: 4
|
farmi capire non è il mio forte
allora , con lo script che ho fatto io il risultato sarà : blabla UNO bla bla bla bla --stringa2-- blu bli UNO --stringa2-- ciaociaociao salvato nel file pagina_UNO.php; poi al secondo ciclo di for sarà : blabla DUE bla bla bla bla --stringa2-- blu bli DUE --stringa2-- ciaociaociao salvato nel file pagina_DUE.php; etc.. fino a che non finisco le righe in sostituzione1.txt il mio problema è che devo sostituire anche --stringa2-- (che nel primo ciclo dovrebbe essere sostituito con SEI , nel secondo con SETTE etc..) ma non sò come fare. Non sò se mi sono spiegato meglio... grazie Kingv! |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Codice:
#!/bin/bash
arr_uno=(`cat sostituzione1.txt`)
arr_due=(`cat sostituzione2.txt`)
for (( i = 0 ; i < ${#arr_uno[@]} ; i++ ))
do
cat modello.html | sed -e "s/--stringa1--/${arr_uno[$i]}/g" | sed -e "s/--stringa2--/${arr_due[$i]}/g" > pagina$i.php
done
|
|
|
|
|
|
#7 | |
|
Junior Member
Iscritto dal: Jun 2005
Messaggi: 4
|
Quote:
peccato non ci sia la faccina in genuflessione. ti ringrazio ! obbligato Marco |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
figurati, di niente |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:41.



















