[Tech] sed e script

Mattia Brunetti mat.brunetti@tin.it
Ven 31 Ago 2001 05:20:51 CEST


Il 15:55, mercoled? 29 agosto 2001, hai scritto:

> sed 's/?/\è/; s/é/\é/;....' input > output
> 
> senza la parentesi graffa (hai programmato in awk?) dovrebbe andare. Anche
> il /g mi sa che ? una opzione di ex (e perl) ma per sed non dovrebbe
> servire, dato che funziona a linee.

Mi sono riletto Appunti di Informatica Libera  e il man di Sed.
Mi sembra di aver capito che questo qui e' buono.

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
#!/bin/bash
pagine=`ls *.html`
ba="backup"
#creo directory backup
mkdir $ba
for i in $pagine
do
#faccio backup
mv $i $ba
# {accentate} scritto da Simone Ballerini
sed '{
  s/?/\è/g
  s/é/\é/g
  s/?/\ì/g
  s/?/\ò/g
  s/?/\à/g
  s/?/\ù/g
}' $ba/$i > $i
done
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

Ed anche questo dovrebbe essere giusto.

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
#!/bin/bash
pagine=`ls *.html`
ba="backup"
#creo directory backup
mkdir $ba
for i in $pagine
do
#faccio backup
mv $i $ba
sed ' s/?/\&egrave/g ; s/é/\&eacute/g ; s/?/\&igrave/g ; s/?\&ograve/g ;      
s/?/\&agrave/g ; s/?/\&ugrave/g' $ba/$i > $i
done
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
++++
Il parametro 'g' esegue l'operazione di rimpiazzo per tutte le corrispondenze 
che si possono avere sulla stessa riga, senza limitarsi alla prima soltanto;
Da Appunti di Informatica Libera 
++++
{ comandi }
Un raggruppamento di comandi pu? essere realizzato delimitandolo tra 
parentesi graffe. Tuttavia, ?importante osservare che in questo caso, i 
comandi vanno indicati ognuno in una riga differente, e la parentesi graffa 
di chiusura deve apparire da sola in una riga. Di solito, non c'?? la 
necessit? di usare un raggruppamento, dal momento che basta ripetere la 
stessa selezione di righe con un altro comando.
Da Appunti di Informatica Libera 
++++

Mi funzionano tutti e 2.

Bachi:
Occhio che ha un difettuccio; Cambia le accentate anche nei commenti!

> 
> Non ? un problema di script, ma di sed (prova a leggere il manuale :)
Hai ragione. :-)
> -- 
> Franco Bagnoli (franchino) <bagnoli@dma.unifi.it>

Ciao

Mattia

-- 
Pace e prosperita'   \\//

Key fingerprint = 1808 4888 A429 CE0A C794  90A5 27E5 52A0 ACF1 A8FF

ICQ # 107461752





Maggiori informazioni sulla lista flug-tech