SH-Script: Durch Verzeichnis iterieren und jeweils commando aufrufen

daheym

Grünschnabel
Hallo zusammen,

habe schon ein wenig gegoogelt und auch hier schon die Suche bemüht, kam aber leider zu keinem Ergebnis...

Im Moment habe ich in meinem Script folgenden Code:
Code:
cat ./stylesheets/input1.xslt | sed 's@%LANGUAGECODE%@de@' > $installDir/stylesheets_de/output1.xslt 2>/dev/null
cat ./stylesheets/input2.xslt | sed 's@%LANGUAGECODE%@de@' > $installDir/stylesheets_de/output2.xslt 2>/dev/null
cat ./stylesheets/input3.xslt | sed 's@%LANGUAGECODE%@de@' > $installDir/stylesheets_de/output3.xslt 2>/dev/null
...

Da aber hin und wieder mal neue Stylesheets dazukommen und das anpassen des Scriptes auf dauer ziemlich lästig ist möchte ich das ganze nun doch etwas verbessern. D.h. es müssten alle *.xslt Dateien in dem Verzeichnis ausgelesen werden und darauf eben mehr oder weniger der obige Code (String ersetzen und speichern) ausgeführt werden

Habe leider wenig Ahnung von der ganzen Sache. Wäre nett wenn mir jemand helfen könnte.

Danke

Gruß
 
Eine Moeglichkeit duerfte folgendes darstellen:
Bash:
#!/bin/sh
for FILE in $(ls *.xslt); do
 cat ${FILE} | sed 's@%LANGUAGECODE%@de@' > ${installDir}/stylesheets_de/${FILE}
done

Dadurch haben Quell- und Ziel-Datei den gleichen Namen, wenn das okay ist solltest Du mit diesem Script eigentlich arbeiten koennen.

Edit: Aus irgendeinem Grund fuegt der Highlighter scheinbar |> hinter meinen Variablen ein, diesen String musst Du also entfernen.
 
ui das ging ja schnell.

funktioniert 1a, musste lediglich noch ein cd vorne und hinten anstellen, da die stylesheets in einem unterordner liegen, aber das habe ich ja glücklicherweise alleine hinbekommen ;)

danke dir! :)
 
Nichts zu danken.

Uebrigens, manchmal koennen pushd und popd ganz hilfreich sein.
Mit pushd springst Du, wie mit cd, in ein Verzeichnis, mit popd springst Du dahin zurueck wo Du hergekommen bist.
 

Neue Beiträge

Zurück