Re: [Forum] Ændre .htm til .html

From: Jørgen Frøjk Kjærsgaard <jfk@informaticon.dk>
Date: Mon Dec 18 2000 - 11:21:39 CET

Kasper Hald wrote:
>
> Hej Morten.
>
> On Sun, 17 Dec 2000, Morten Liebach wrote:
>
> > Hej
> >
> > Er der nogen der kender et "script" der kan ændre en masse files fra .htm
> > til .html, _inklusive_ links intern imellem dokumenterne?
> >
> > Jeg står med en masse .htm filer som publicfile nægter at serve fordi de
> > hedder .htm og ikke det korrekte .html, og det er ret trælst at gøre
> > manuelt (100+ filer)!
> >
>
> Jeg kender ikke et, men jeg er sikker paa at det ikke
> tager mere end 10 minutter at lave et.
>
> Foelgende shell-script (bash) skulle kunne goere
> trickset, men check det og ret det til
> hvis jeg har lavet nogle fejl:
>
> #!/bin/bash
> for i in `ls *.htm`
> do
> echo "Copying $i to ${i}l"
> `cp "$i" "$i"l`
> echo "Replacing htm links with html in ${i}l"
> `cat "$i"l | sed "s/\.htm\>/.html"`
> done

Et par småfejl: cat | sed... smider resultatet ud og "sed" mangler en
option, der fortæller, at alle forekomster på hver linie skal erstattes.
Ellers erstattes kun første forekomst.

Prøv dette:

#!/bin/bash
for i in `ls *.htm`; do
  sed 's/\.htm\([^A-Za-z0-9]\)/.html\1/g' < $i > ${i}l
done

Dette vil erstatte ".htm" med ".html" uden at erstatte ".html" med
".htmll", og virke uanset hvilket ikke-alfanumerisk tegn, der følger
efter l'et. Forudsætter dog, at ".htm" ikke er det allersidste på en
linie!

/jfk

-- 
Jørgen Frøjk Kjærsgaard, Systemkonsulent (Systems Consultant)
Inform@ticon ApS * Web: www.informaticon.dk * Tlf: 8672 0093
Internet programmering * Systemudvikling på Linux, FreeBSD og PalmOS
Received on Mon Dec 18 11:22:22 2000

This archive was generated by hypermail 2.1.8 : Tue Jul 19 2005 - 16:01:45 CEST