sed mit basename verknüpfen - oder anders Dateipfade in Dateien mit regex ersetzen?

K

Kryptaesthesie

Jungspund
Hallo,

mein Ziel ist es ein Script zu schreiben, das eine CSS-Datei entgegen nimmt und in dieser Datei Pfade ersetzt.
Ich möchte bspw. Folgendes erreichen:

aus
background: url(relativer_pfad/fp_beispiel.png)
wird
background: url($CMS_REF(media:"fp_beispiel")$)


Der Dateiname soll bleiben und von dem CMS_REF inkl. der $ umschlossen sein.

Ich habe mit sed schon etwas herumgespielt und bekomme auch mein url( ersetzt durch url($CMS_REF(media:", nur beim Dateinamen hapert es.
Es gibt ja die wunderbare Funktion basename - kann ich die in den sed-Befehl einbauen? Wie?


Vielen Dank schon mal für eure Hilfe!
Gruß
Gerrit
 
Mein Script sieht bisher so aus:

Code:
#!/bin/bash

# check source file exists
if [ ! -f $1 ]
then
    echo "Source file not found. Exit."
    exit 1
fi

tempfile="$1_"

# replace ('
sed "s/('/(\$CMS_REF(media:\"/g" $1 > $tempfile

# replace ')
sed "s/')/\")\$/g" $tempfile > $tempfile
 
Reicht Dir das so schon?
Code:
~> echo "background: url('relativer_pfad/fp_beispiel.png')" | sed -e "s/('/(\$CMS_REF(media:\"/g" -e "s/')/\")\$)/g" -e 's/".*\//"/'
background: url($CMS_REF(media:"fp_beispiel.png")$)
 

Ähnliche Themen

wie Regex für sed escapen?

Zurück
Oben