[gelöst] Groß-Kleinschreibung im Text ändern
[gelöst] Groß-Kleinschreibung im Text ändern
hi,
ich habe ein kleines Problem,
in einer xml Datei habe ich einige Dateinamen (Bilder) die mal groß und mal klein geschrieben wurden.
z.B Bild1.png, bild2.png, bilD3.png usw.
nun habe ich alle Dateinamen im Ordner "Bilder" klein geschrieben.
Ich benötige ein Script das mir die Dateinamen im xml File in Kleinschrift umwandelt.
bin für jede Hilfe dankbar
mfg
vobie
ich habe ein kleines Problem,
in einer xml Datei habe ich einige Dateinamen (Bilder) die mal groß und mal klein geschrieben wurden.
z.B Bild1.png, bild2.png, bilD3.png usw.
nun habe ich alle Dateinamen im Ordner "Bilder" klein geschrieben.
Ich benötige ein Script das mir die Dateinamen im xml File in Kleinschrift umwandelt.
bin für jede Hilfe dankbar
mfg
vobie
Zuletzt geändert von vobie am 11.09.2008 01:28:36, insgesamt 1-mal geändert.
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.
Re: Groß-Kleinschreibung im Text ändern
Steht in der XML-Datei sonst noch was drin?
Dürfen nur die Inhalte bestimmter Tags klein gemacht werden?
Poste mal ein Stück der Datei als Beispiel.
Falls du alles Großgeschriebene klein machen willst, dann verwende `tr'
Sonst schreibst du dir am Besten ein `sed' oder `awk'-Script.
(Oder lässt es von uns schreiben )
Dürfen nur die Inhalte bestimmter Tags klein gemacht werden?
Poste mal ein Stück der Datei als Beispiel.
Falls du alles Großgeschriebene klein machen willst, dann verwende `tr'
Code: Alles auswählen
<infile tr '[:upper:]' '[:lower:]' >outfile
(Oder lässt es von uns schreiben )
Use ed once in a while!
Re: Groß-Kleinschreibung im Text ändern
hi,
danke für die schnelle Antwort.
Ja, inder xml Datei steht noch jede Menge anderes.
mir geht es darum nur die Bild-Dateinamen mit einem Script aus zu filtern und dann klein zu schreiben.
z.B.
Button.png --> button.png
focusNF.png --> focusnf.png
List-Icon.png --> list-icon.png
usw. usw.
das Script sollte z.b nach *.png suchen und den Namen wenn nötig klein schreiben.
würde mich über ein kleines Shellscript sehr freuen da meine Kenntnisse im programmieren sehr bescheiden sind.
mfg
vobie
danke für die schnelle Antwort.
Ja, inder xml Datei steht noch jede Menge anderes.
mir geht es darum nur die Bild-Dateinamen mit einem Script aus zu filtern und dann klein zu schreiben.
z.B.
Button.png --> button.png
focusNF.png --> focusnf.png
List-Icon.png --> list-icon.png
usw. usw.
das Script sollte z.b nach *.png suchen und den Namen wenn nötig klein schreiben.
würde mich über ein kleines Shellscript sehr freuen da meine Kenntnisse im programmieren sehr bescheiden sind.
mfg
vobie
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.
Re: Groß-Kleinschreibung im Text ändern
Ein kleiner Ausschnitt aus der xml-Datei wäre zum Testen ganz hilfreich.
Oh, yeah!
Re: Groß-Kleinschreibung im Text ändern
sorry
nach
es geht nur um die png Dateien
vobie
Code: Alles auswählen
<width>200</width>
<height>260</height>
<posx>0</posx>
<posy></posy>
<texture>folderVG.png</texture>...
<width>200</width>
<height>260</height>
<posx>16</posx>
<posy>33</posy>
<texture>Imge45.png</texture>...
Code: Alles auswählen
<width>200</width>
<height>260</height>
<posx>0</posx>
<posy></posy>
<texture>foldervg.png</texture>...
<width>200</width>
<height>260</height>
<posx>16</posx>
<posy>33</posy>
<texture>imge45.png</texture>...
vobie
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.
Re: Groß-Kleinschreibung im Text ändern
Dass Ganze könnte eventuell so aussehen (eine Art Einzeiler geschrieben und getestet auf solaris):
Input-File:
Code:
Ausgabe:
Input-File:
Code: Alles auswählen
<width>200</width>
<height>260</height>
<posx>0</posx>
<posy></posy>
<texture>folderVG.png</texture>...
<width>200</width>
<height>260</height>
<name>NameK</name>
<posx>16</posx>
<posy>33</posy>
<texture>Imge45.png</texture>...
Code: Alles auswählen
#!/usr/bin/ksh
FILE=$1
cat $FILE|while read line;do
MATCH=$(echo $line|grep -i ".png")
if [[ "$MATCH" != "" ]]
then
echo $line|tr -s '[:upper:]' '[:lower:]'
else
echo $line
fi
done
Code: Alles auswählen
<width>200</width>
<height>260</height>
<posx>0</posx>
<posy></posy>
<texture>foldervg.png</texture>...
<width>200</width>
<height>260</height>
<name>NameK</name>
<posx>16</posx>
<posy>33</posy>
<texture>imge45.png</texture>...
Oh, yeah!
Re: Groß-Kleinschreibung im Text ändern
DANKE
perfekt
#!/usr/bin/ksh --> #!/bin/sh
und das tr -s ohne -s
vielen Dank
vobie
perfekt
#!/usr/bin/ksh --> #!/bin/sh
und das tr -s ohne -s
Code: Alles auswählen
#!/bin/sh
FILE=$1
cat $FILE|while read line;do
MATCH=$(echo $line|grep -i ".png")
if [[ "$MATCH" != "" ]]
then
echo $line|tr '[:upper:]' '[:lower:]'
else
echo $line
fi
done
vobie
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.
Re: [gelöst] Groß-Kleinschreibung im Text ändern
Unter linux könntest du auch egrep verwenden und dann auf verschiedene Endungen wie z.B gif, jpg usw. prüfen.
Oh, yeah!
Re: [gelöst] Groß-Kleinschreibung im Text ändern
Ich denke, wenn es schon XML ist, dann sollte man nicht nach *.png suchen, sondern einfach nach den <texture> Tags --- das macht semantisch viel mehr Sinn.
Hier meine Lösung als AWK-Script:
Der Aufruf erfolgt dann zum Beispiel mit
Einiges Problem was ich bei meinem Script sehe, ist wenn <texture> und </texture> nicht in einer Zeile stehen, was bei XML ja erlaubt ist.
Hier meine Lösung als AWK-Script:
Code: Alles auswählen
#!/usr/bin/awk -f
/<texture>/{
line = $0;
sub("^.*<texture>", "", line);
sub("</texture>.*$", "", line);
sub("<texture>.*</texture>", "<texture>" tolower(line) "</texture>");
}
{
print;
}
Code: Alles auswählen
<input ./awk-script.awk
Use ed once in a while!
Re: [gelöst] Groß-Kleinschreibung im Text ändern
Ja, stimmt. Dies ist auch eine interessante Variante, bei der man sich aber schon ein wenig besser mit awk (vorallem mit awk-Skripten) auskennen muss.
Oh, yeah!