Questo è il file di esempio che verrà utilizzato come origine dati:
Questa la riga di comando (spezzata per non rovinare il layout del forum):codice:[sergio@winnie ~/tmp]$ cat pagina.html <html> <head> <title>prova</title> </head> <body> <div id="navigation"> <ul>[*]Home[*]Info[*]Modulo Informazioni[*]Corsi[*]Cos'è l'ECDL[*]Convenzioni[*]Progetti[*]Software[*]Calendario[*]Annunci di lavoro[*]Novità[*]Corsi d'inglese[/list] </div> bla bla bla bla bla bla bla bla bla </p> <div if="footer"> testo di chiusura </p> <ul>[*]Novità[*]Corsi d'inglese[/list] </div> </body> </html>
Questo il risultato restituito su STDOUT:codice:[sergio@winnie ~/tmp]$ sed -e '/<div id="navigation">/,/<\/div>/\ s%[/list]%[*]Corsi di SED by cacao74\n&%'\ pagina.html
Breve descrizione:codice:<html> <head> <title>prova</title> </head> <body> <div id="navigation"> <ul>[*]Home[*]Info[*]Modulo Informazioni[*]Corsi[*]Cos'è l'ECDL[*]Convenzioni[*]Progetti[*]Software[*]Calendario[*]Annunci di lavoro[*]Novità[*]Corsi d'inglese [*]Corsi di SED by cacao74[/list] </div> bla bla bla bla bla bla bla bla bla </p> <div if="footer"> testo di chiusura </p> <ul>[*]Novità[*]Corsi d'inglese[/list] </div> </body> </html>
Il comando sed, sostituisce il tag "[/list]" con il tag per il nuovo link ed un tag di chiusura per la lista. La sostituzione avviene solamente nell'area indicata, ovvero la div con id=navigation.
Aggiungo, che se al posto di
sed -e <regole> file.html ...
si specifica
sed -i -e <regole> file.html ...
le operazioni di sostituzione avvengono direttamente nei file indicati, senza alcun output, ideale quindi per scripts di manutenzione.
Io l'ho testato cosi' in una directory con i files html:
$ sed -i -e <regole> *.html
e il file risultano modificati come sopra indicato.
Ora, dovendo operare la sostituzione su diverse pagine, puoi scegliere le modalità che preferisci:
- eseguire lo script in ogni directory per i file *.html
- utilizzando find nelle directory interessate
- ...
Chiedo scusa per le vaccate che dico in ambito HTML, ma non sono un tecnico web.
Spero di non aver fatto errori con il copia&incolla...
Per altre questioni...man sed
ciao