Newsgroup: it.comp.os.linux.software
Titolo: sed e script

Devo fare uno script bash che prenda da un file i nomi di file e
directory. Il file si chiama lista ed e` strutturato nel seguente
modo:
directory/file
directory/directory/file
directory/file
directory/directory/directory/file
directory/file
directory/file
... eccetera
lo script e` strutturato nel seguente modo:
#!/bin/bash
for i in $(cat lista) ; do
S='s/pippo/'$i'/'
cat $i | sed $S > ../$i
done
Il problema e` che avendo il file lista i simboli '/' come separazione
tra directory e file questi non piacciono a sed quando gli dico
di fare la sostituzione (sed 's/pippo/'$i'/' diventerebbe sed
's/pippo/directory/file/' invece la sintassi corretta dovrebbe essere
sed 's/pippo/directory\/file/').
Sto cercando un metodo 'elegante' per ovviare a questo problema.
Ringrazio chiunque possa aiutarmi.
-- 
Massimo  ;-)  | EMail: 
q-con...@iol.it
 * ICQ: 37930285
--------------| 
http://digilander.iol.it/MaQ
              | 
http://digilander.iol.it/usstribolo
   *TRIBOL*   | 
http://groups.yahoo.com/group/usstribolo

 done
E' molto semplice, devi trattare in modo adeguato quei caratteri slash..
ti faccio un esempio che potrai adattare alle tue necessita': mettiamo
che io abbia un file con una lista di file Mp3, del tipo
pier@moria:~$ cat Liste/Led\ Zeppelin\ BBS\ Sessions\ Volume\ 1 
/mnt/samba/My/Led Zeppelin - BBC Sessions/Volume 1/Communication
breakdown.mp3
/mnt/samba/My/Led Zeppelin - BBC Sessions/Volume 1/Dazed and
confused.mp3
/mnt/samba/My/Led Zeppelin - BBC Sessions/Volume 1/How many more
times.mp3
/mnt/samba/My/Led Zeppelin - BBC Sessions/Volume 1/I can't quit you
baby.mp3
/mnt/samba/My/Led Zeppelin - BBC Sessions/Volume 1/Somethin'else.mp3
/mnt/samba/My/Led Zeppelin - BBC Sessions/Volume 1/The girl I love she
got long black wavy hair.mp3
/mnt/samba/My/Led Zeppelin - BBC Sessions/Volume 1/Travelling riverside
blues.mp3
/mnt/samba/My/Led Zeppelin - BBC Sessions/Volume 1/What is and what
should never be.mp3
/mnt/samba/My/Led Zeppelin - BBC Sessions/Volume 1/Whole lotta love.mp3
/mnt/samba/My/Led Zeppelin - BBC Sessions/Volume 1/You shook me.mp3
e che voglia copiare sul mio HD questi files.. una volta copiati i files
il file di lista di xmms non funzionera' piu' non essendo corretti i
patch per cui bastera' un colpettino di sed, cosi'...
pier@moria:~$ cat Liste/Led\ Zeppelin\ BBS\ Sessions\ Volume\ 1 | sed
's!/mnt/samba/My/!/opt/Music/Mp3/Hard_Rock/!'
/opt/Music/Mp3/Hard_Rock/Led Zeppelin - BBC Sessions/Volume
1/Communication breakdown.mp3
/opt/Music/Mp3/Hard_Rock/Led Zeppelin - BBC Sessions/Volume 1/Dazed and
confused.mp3
/opt/Music/Mp3/Hard_Rock/Led Zeppelin - BBC Sessions/Volume 1/How many
more times.mp3
/opt/Music/Mp3/Hard_Rock/Led Zeppelin - BBC Sessions/Volume 1/I can't
quit you baby.mp3
/opt/Music/Mp3/Hard_Rock/Led Zeppelin - BBC Sessions/Volume
1/Somethin'else.mp3
/opt/Music/Mp3/Hard_Rock/Led Zeppelin - BBC Sessions/Volume 1/The girl I
love she got long black wavy hair.mp3
/opt/Music/Mp3/Hard_Rock/Led Zeppelin - BBC Sessions/Volume 1/Travelling
riverside blues.mp3
/opt/Music/Mp3/Hard_Rock/Led Zeppelin - BBC Sessions/Volume 1/What is
and what should never be.mp3
/opt/Music/Mp3/Hard_Rock/Led Zeppelin - BBC Sessions/Volume 1/Whole
lotta love.mp3
/opt/Music/Mp3/Hard_Rock/Led Zeppelin - BBC Sessions/Volume 1/You shook
me.mp3
visto l'uso del carattere '!'? E' esattamente cio' che fa per te.. buon
lavoro !
-- 
Pierluigi De Rosa (
tho...@durin.khazad-dum.net
).
<<      LINUX: the choice of a GNU generation     >>
<<   For my real address... ask the Balrog.       >>
* Sostenete la Lega per la Soppressione dei Troll *

 lavoro !
Eh eh, il classico uovo di Colombo. :)
Grazie per la risposta cosi` rapida. Ora va tutto a meraviglia.
Mi chiedo come ho fatto a stare tutto questo tempo senza sed. :)


 Mi chiedo come ho fatto a stare tutto questo tempo senza sed. :)
Infatti, me lo chiedo anche io: dopo la lettura del mio bel librone sul
sed della O'Reilly e le cose g a l a t t i c h e che ho visto si possono
fare in effetti il mio modo di creare script e' cambiato.. sed e'
davvero grandioso !!


 e' davvero grandioso !!
se la sed-ofilia non e` ancora reato, poi me lo ripresti... ;-)
-- 
Configura internet, junkbuster, fetchmail, procmail, leafnode, firewall,
dns, wwwoffle, postfix, mutt, slrn, kernel, ed altro, visitando il sito:
http://mrshark.sourceforge.net
 od 
http://mrshark.cjb.net
 e scaricando il
"Quick&Easy Configuration Howto". Cosenza LUG: IRC: 
irc.openprojects.net
canale #cslug - Mailing-list: 
http://www.linux.it/mailman/listinfo/cslug

 se la sed-ofilia non e` ancora reato, poi me lo ripresti... ;-)
Eeeeh qui stiamo esagerando, neh? ;-)


sed della O'Reilly e le cose g a l a t t i c h e che ho visto si possono
Mi passi il titolo.
Grazie e Ciao.
--
Zio Ciano.

 Mi passi il titolo.
http://search.oreilly.com/cgi-bin/search?term=sed&category=All&pref=all


 Grazie e Ciao.
De nada


 E' molto semplice, devi trattare in modo adeguato quei caratteri slash..
Scusa, ma non era piu` semplice se usava un altro carattere di
separazione per le istruzioni? (qualcosa tipo S='s,pippo,`$i`,' ) ;)
Un Henryx che di sed ha letto solo quello che era scritto su AL :P
-- 
Questo senso di approssimazione che pervade i windowsFan a volte mi
sconforta (V. Valvano)

 Un Henryx che di sed ha letto solo quello che era scritto su AL :P
Ecco, appunto ;-)


 separazione per le istruzioni? (qualcosa tipo S='s,pippo,`$i`,' ) ;)
Ehm... e non e` quello che ha detto Thorin? Invece di usare la / come
facevo io mi ha consigliato di usare un altro carattere ! appunto. :)
Cmq in un'altro script dovevo usare anche il carattere ! oltre a / e
facendo delle prove ho capito quello che hai appena detto tu, ovvero
che si puo` utilizzare un qualunque carattere come separatore.


 Ecco, appunto ;-)
Non confondiamo la mezza ignoranza con la distrazione :PPP
Un Henryx distratto
P.S. sai per caso dove posso trovare "sed & awk" in un posto che sia
piu` accessibile del sito della O'Reilly (sai, non avendo carta di
credito...) ?


 credito...) ?
Beh vai in via Hoepli, dietro piazza Duomo e li' lo trovi... ah
ovviamente prima devi arrivare a Milano.. eh? Come? E' lontano? Credo
che in qualunque libreria ben fornita si trovino i libri di O'Reilly.


 GO TO 1
cattivo cattivo cattivo, non te l'ha detto il tuo amichetto libero nigro
che il GOTO e` <vocina stridula>cattiva programmazione</vocina stridula>?
<VBEG> :-)


 <VBEG> :-)
Ci mando prima te o lui? :-) Lo sai che lo odio..


 Ci mando prima te o lui? :-) Lo sai che lo odio..
lo  so, per  questo  sfotto... mi  sa  che non  hai  visto il  <VBEG>...
comunque ho il forward dei VAFF... direttamente a nigro... :-)


 comunque ho il forward dei VAFF... direttamente a nigro... :-)
L'ho visto, l'ho visto ma il VAFF glielo mando volentieri lo stesso :-)


 che in qualunque libreria ben fornita si trovino i libri di O'Reilly.
Beh, certo, dato che abito vicino Roma sto a due passi dalla Hoelpi...
;))
Cmq l'ho trovato, ma non penso di comprarlo per adesso (sai, 82k per uno
studente non sono poche... ;) )
Henryx


 studente non sono poche... ;) )
Mi rendo conto che non sono poche (eh, io non sono uno studente.. ;-)
pero' al posto tuo e' un investimento che farei. Fai un piccolo
sacrificio ma compri qualcosa di veramente utile che ti aiuta ad
imparare meglio <g>
thorin che "veramente i libri di Hoepli in generale sono sempre un buon
investimento ed infatti ne ha un bel po'"


investimento ed infatti ne ha un bel po'"
Direi che sono gli unici tradotti da persone competenti e anche che a
Roma sono difficili da trovare

 Roma sono difficili da trovare
Infatti.. e se devo proprio essere sincero io continuo a preferire le
versioni in lingua originale perche' sono molto piu' chiari. Poi
ovviamente e' questione di gusti ed e' dovuto sicuramente al fatto che
con l'inglese non ho problemi :)


 wrote in message
16irqtkn0sqrvqlp6...@4ax.com...

Tuttilibri a via appia nuova?, oppure la libreria dell'ingegnere ( o come se
scrive) che  sta' a via cavour?

scrive) che  sta' a via cavour?
Per le librerie quella di via appia nuova non conosco, per quella del
politecnico non si trova esattamente a Via Cavour ma si tratta di un
vialetto adiacente alla facolta' di ingegneria e li dovresti trovare
diverso materiale.
ciao,

 imparare meglio <g>
Beh, se consideri che in tre mesi ho dovuto cambiare un hd, il monitor,
e che ho aggiunto un po' di RAM direi che forse ho fatto un po' troppe
spese ;)


 spese ;)
Beh avrai un bel monitor ma continuerai a non conoscere sed... vorra'
dire che userai joe a 1280x1024 e vivrai felice lo stesso ;-)


 dire che userai joe a 1280x1024 e vivrai felice lo stesso ;-)
Guarda che sed lo conosco (non a fondo pero`) :P
Inoltre non uso joe :PPP
E poi non uso il monitor a 1280x1024 :(


 E poi non uso il monitor a 1280x1024 :(
Mi dispiace per te :)


 Mi dispiace per te :)
://
Solo perche` non ho la scheda video adatta...
Un Henryx che pero` ha la console a 80x50


 Un Henryx che pero` ha la console a 80x50
Uhm ho problemi a leggere scritte cosi' piccole, personalmente.
