Delprosjekt: Skifte ut URL'er/tekststrenger i html-dokumenter
på Edmund
- Ansvarlig:
- Eirik Rogne (eirik.rogne@hiof.no)
- Innledning:
- Da vi byttet fra gamle Edmund til nye Edmund måtte en god
del html-dokumenter endres. I mange av dokumentene var linkene hardkodet
til /almashriq/xxx/yyy/zzz.html. Disse er nå satt til
/xxx/yyy/zzz.html.
- Hva vi har gjort:
- Vi har laget et perl-script (erstatt.pl) som
kan foreta search-and-replace i innholdet på mange filer.
Først er man avhengig av å ha en fil som lister opp alle
filene som skal editeres i. Deretter kjøres scriptet (fra samme
katalog som filen med listen over filer ligger i), og det genereres en
logg som inneholder filnavnet på alle filene som ble editert. Den
editerte filen vil få samme filnavn som den orginale, mens
orginalen vil få extention ".old".
- Her er hva vi gjorde:
- Først fant vi alle html-filer som inneholdt /almashriq/:
- find /www/almashriq/htdocs/ -name "*.html" -exec grep -il
'/almashriq/' {} \; -print > jobs_to_do_filenames &
- Disse filene ble lagt i filer.txt. Denne filen ble lest av
erstatt.pl som byttet ut en streng med en annen:
- ./erstatt.pl 'href=/almashriq/' 'href=/' &
- Siden ikke alle dokumentene fulgte en standard, måtte dette
scriptet kjøres flere ganger for å få med alle
skrivemåtene:
- href=/almashriq/
- href = /almashriq/
- href="/almashriq/
- href = "/almashriq/
- src=/almashriq/
- src = /almashriq/
- src="/almashriq/
- src = "/almashriq/
- osv.
- En enkel måte å sjekke resultatet på er å
telle hvor mange filer som gjenstår:
- find /www/almashriq/htdocs/ -name "*.html" -exec grep -il
'/almashriq/' {} \; | wc -l
- Erfaringer:
- Dersom tegnene "[" og "]" i søkestrengen ska benyttes må
disse skrives som "\[" og "\]".
- webxref med opsjonen -replace kan også benyttes. Les
man-sidene.
- Mulige forbedringer:
- Search-and-replace på tekststrenger som går over flere
linjer (multiline).
- Prosjektfakta:
- Lokalisering:
- script: /usr/local/bin/erstatt.pl
|