sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #77177
Re: to sed problemer
God dag Mikkel,
Fredag 22 oktober 2004 09:14 kvad mikkel Meinike-Nielsen:
> Problem 2:
> Jeg vil gerne udskifte støre blokke af tekst som går over
> flere linier, men har ikke rigtigt kunne finde ud af hvordan
> man gør det. Jeg prøver lige med et helt konkret eks.
>
> Jeg vil gerne udskifte al tekst over flere linier fra toppen
> af min fil catalog.htm og ned til </HEAD> med en tekst som er
> ca. lige så lang også over flere linier hvordan gør jeg det?
Du må måske gå lidt mere i detaljer.
Hvis du blot skal indsætte nogle faste linjer i stedet for de der er,
kan du gøre noget i stil med dette (ikke testet):
#!/bin/bash
#Slet fra og med linje 1 til og med linjen der indeholder HEAD-mærket.
sed -i '1,<\/HEAD>/d' fil.html
#Udskriv filens linjer i omvendt rækkefølge i en midlertidig fil.
tac fil.html > midlertidigfil.html
#Tilføj de nye linjer i omvendt rækkefølge.
echo "</HEAD>" >> midlertidigfil.html
echo "linje n" >> midlertidigfil.html
echo "linje 3" >> midlertidigfil.html
echo "linje 2" >> midlertidigfil.html
echo "linje 1" >> midlertidigfil.html
#Udskriv den midlertidige fils linjer i omvendt rækkefølge i den
originale fil.
tac midlertidigfil.html fil.html
#Slet den midlertidige fil.
rm midlertidigfil.html
Hvis du skal gøre det på en hel række filer, kan ovenstående lægges
ind i en for-sætning, der kører filerne igennem en ad gangen.
Det er ikke fantastisk pænt eller snedigt, men det virker.
Hilsen Johnny :o)
References