← Back to team overview

sslug-teknik team mailing list archive

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