Newsgroup: it.comp.os.linux.iniziare
Titolo: sed 's/</body>/JavaScript</body>/' - valutazione variabili oppure caratteri di protezione?

Vorrei usare sed come da oggetto.
Devo aggiungere un JS a un file, anzi un sacco di file ... vorrei sfruttare le capacità di
scripting della bash e così con l'aiuto del NG ho scritto
tanto per iniziare
#!/bin/bash
        for i in $( ls *.htm); do
            mv $i w$i
            cat  w$i | sed 's/</body>/</pippo>/' > $i
            echo ho lavorato $i
            rm w$i
        done
che non funge perchè, ovviamente non gli piacciono / e < > di HTML
così li ho "protetti" con \
usando 
cat  w$i | sed 's/\<\/body\>/\<\/pippo\>/' > $i
ma non funge manco così, nel senso che gira, ma non fa quello che deve fare ...
allora ho provato a usare delle variabili, ma uguale, non si lamenta di nulla, ma nemmeno
fa il suo lavoro, credo però il problema in questo caso non sia legato ai caratteri da
proteggere, ma alle variabili infatti non funge nemmeno
#!/bin/bash
        for i in $( ls *.htm); do
            input=body
            out=bodybodybody
            echo $input
            mv $i w$i
            cat  w$i | sed 's/$input/$out/' > $i
            echo ho lavorato $i
            rm w$i
        done
così ho provato a pasticciare un po' con i vari
"$input"
($input)
echo $input
...
non ne ho cavato un ragno ...
secondo voi cosa ci dovrei mettere dentro a sed per fargli valutare la varaibile?
o come posso infilare roba html dentro a quel comando sed visto che se ne frega delle
slash di protezione dei caratteri speciali?
graize mille a tutti
-------------------------------------------------------------
tutto ciò che ho scritto è sempre In My Humble Opinion (IMHO)
probabilmente l'ho scritto di fretta, quindi scusate se sono stato sbrigativo.

             cat  w$i | sed 's/</body>/</pippo>/' > $i
sed "s/</body>/</pippo>/" w$i > $i
ossia:
 senza cat (che non serve)
 usa le virgolette (") al posto dell'apice (') per gli argomenti del sed
EmJey
-- 
Non prendere la vita troppo sul serio...
non ne uscirai mai vivo

usa le virgolette (") al posto dell'apice (') per gli argomenti del sed
ok, come me lo hai scritto non da errori, ma non lavorai, ma rispettando quello che hai
scritto a parole va benissimo! 
sed "s/zxcvbnm/"$seed"/" file.htm;
unico problema che proprio si rifiuta di accettare codice html ... anche con una
variabile!
ora però ho capito che i < e > sono innoqui, mentre se li proteggo, va nel casino ...
sono da proteggere 
nel mio caso ! & ' / " 
oltre a  togliere ogni newline (per stare tranquilli)
<\!-- 
statistiche.it
 --><script language=\"javascript\"
type=\"text\/javascript\">js_ver=\"1.0\";query=\"rnd=\"+Math.random()+\"\&rfr=\"+escape(document.referrer)+\"\&pg=\"+escape(window.location.href);document.cookie=\"
statistiche.it
=1;
path=\/\"; query+=\"\&cks=\"+(document.cookie?\"1\":\"0\");<\/script><script
language=\"javascript1.1\"
type=\"text\/javascript\">js_ver=\"1.1\";query+=\"\&js=\"+(navigator.javaEnabled()?\"1\":\"0\");<\/script><script
language=\"javascript1.2\" type=\"text\/javascript\">
js_ver=\"1.2\";query+=\"\&rsl=\"+screen.width+\'x\'+screen.height+\"\&clr=\"+(((navigator.appName.substring(0,3)==\"Mic\"))?screen.colorDepth:screen.pixelDepth);<\/script><script
language=\"javascript1.3\" type=\"text\/javascript\">js_ver=\"1.3\";<\/script><script
language=\"javascript\" type=\"text\/javascript\">document.write(\'<\');document.write(\'a
href=\"http:\/\/
www.statistiche.it
\/stat.php?account=beep\" target=\"_blank\"><img
src=\"http:\/\/
stat1.statistiche.it
\/counter\/count.php?id=beep\&\'+query+\'\&jsv=\'+js_ver+\'\"
border=\"0\" height=\"31\" width=\"88\"
alt=\"Statistiche\"><\');document.write(\'\/a>\');<\/script><noscript>	<a
href=\"http:\/\/
www.statistiche.it
\/stat.php?account=beep\" target=\"_blank\"><img
src=\"http:\/\/
stat1.statistiche.it
\/counter\/count.php?id=beep\" border=\"0\"
width=\"88\" height=\"31\" alt=\"Statistiche\"><\/a><\/noscript><\!-- \!
statistiche.it
 -->
grazie mille


 Devo aggiungere un JS a un file, anzi un sacco di file ...
ferma, ferma!
ma non ti basta aggiungere nell' head dei file html una cosa come
"<script type="text/javascript" src="file.js" />" e mettere il codice in
file.js???
allora prova con:
find /dir -name '*.htm*' -exec sed 's/<head>/<head><script
type="text\/javascript" src="script.js" \/>/' "{}" > "{}.new" \;
-- 
"Lo sa che io ho perduto due figli?"
"Signora, lei e' una donna piuttosto distratta"