• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Filenamen mit Tags versehen

Hallo,

mich beschäftigt schon das ganze WE folgendes Problem:
Im Verzeichnis /ord1/unterord1/ liegen mehrere Files mit unterschiedl. Dateiendungen.

Für alle mit der Endung .sig soll folgendes ans das Ende einer Datei geschrieben werden:
<sign>
<signame>file1.sig</signame>
<signame>file2.sig</signame>
...
</sign>

Für alle sonstigen Endungen soll unterhalb der neu entstandenen sign-Struktur folgendes geschrieben werden:
<files>
<filename>file1.tar</filename>
<filename>file2.txt</filename>
...
</files>

Wie kann man so etwas lösen?

Viele Grüße,
Lars
 
A

Anonymous

Gast
So wie ich das Lese ist da eine kleine Ungenauigkeit in der Logig dieser Aufgabe.
Für alle mit der Endung .sig soll folgendes ans das Ende einer Datei geschrieben werden:
.....
Für alle sonstigen Endungen soll unterhalb der neu entstandenen sign-Struktur folgendes geschrieben werden:
.....

wenn du an .sig Dateien eine sign-Struktur anhängst, dann kannst du nicht an !(.sig) Dateien etwas hinter diese Stuktur anhängen, weil es diese Strukur dort nicht gibt. :?: :?: :?:

robi
 
Ich versuche mich mal am schnell-Coding:

http://scummos.sc.funpic.de/showcode.php?id=37&hide=yes

Sollte gehen.
 
Was scummos dort geschrieben hat, ist schon fast so wie ich es brauche. Danke!
Ich kopiere gerade mal einen Ausschnitt:

for file in *; do
if [ ! "$(echo $file | grep .sig)" ]; then
echo "<filename>$file</filename>" >> datei.txt
fi
done

Ich habe versucht den Stern durch etwas zu ersetzen wie basename /tmp/test/foobar/*
quasi:
for file in basename /tmp/test/foobar/*; do

Aber das geht noch nicht. Wie macht man das richtig?
 
Habs gerade selbst rausgefunden.

echo " <filename>$(basename $file)</filename>" >> datei.txt

Danke für Eure Hilfe!
 
Oben