da hier die Experten sind, wage ich es hiermit einmal um Hilfe zu bitten, was selbstverständlich in diesem Fall nichts mit Debian zu tun hat!
Ich muß ca. 6000 Textdateien umbenennen.
In den Dateien (Chordpro-Format für die Interessirten) befinden sich Songtitel und Interpreten die so dargestellt werden:
{t:Highway to hell}
{st:AC / DC}
Diese will ich auslesen, zusammen fügen einige Zeichen austauschen etc.pp und dann nutzen um die Dateien umzubenennen.
Nachfolgend
1. Inhaltsbeispiel einer Datei
2. Scriptversuch
3. Ergebnis
Code: Alles auswählen
cat 1941.pro
{t:1941 }
{key: A}
{st:Harry Nilsson}
Intro: [Bb7] [A7] - ie last line of verse 1
{C:}
Well in [D7] nineteen-forty [G] one a happy [C7] father had a [A] son
And by [D7] nineteen-forty [G] four the father [C7] walks right out the [A] door
And in [D7] forty [G] five the mom and [C7] son were still a-[A]live
But [Bb7] who could tell in forty six if the [A7] two were to survive
{C:}
Well the [D7] years were passing [G] quickly,
but not [C7] fast enough for [A] him
So he [D7] closed his eyes through [G] fifty five,
then he [C7] opened them up [A] again
Then he [D7] looked around he [G] saw a clown
and the [C7] clown seemed very [A] gay
.....usw.
Code: Alles auswählen
#!/bin/bash
IFS=$'\n';
for i in $(ls *.pro); do
echo 'es wird bearbeitet: '$i
titel=$(egrep '{t:.*}' $i)
interpret=$(egrep '{st:.*}' $i)
echo $titel
echo $interpret
echo $titel $interpret
done
IFS=$' ';
Versuche ich diese zu verketten(Script Zeile 9) läuft da irgendetwas falsch:
Code: Alles auswählen
./rename_pro.sh
es wird bearbeitet: 1941.pro
{t:1941 }
{st:Harry Nilsson}
{st:Harry Nilsson}