String per Bash in Linux zerlegen

Hallo,

ich suche eine Möglichkeit einen String per Shellscript in Linux zu zerlegen.

Übergeben wird:
„Status_New_Project_Organisation20120222_083000.xml“

Mich interessieren dabei die numerischen Angaben am Ende, die (wie man vielleicht sieht) das Datum und die Uhrzeit darstellen. Diese Informationen möchte ich aus der Übergabe rausziehen und darstellen als:

„22.02.2012, 08:30 Uhr“

Hatjemand einen Tipp für mich?

Danke,
Hans

Hallo Hans,

ich suche eine Möglichkeit einen String per Shellscript in
Linux zu zerlegen.
Übergeben wird:
„Status_New_Project_Organisation20120222_083000.xml“
darstellen als:
„22.02.2012, 08:30 Uhr“

w="Status\_New\_Project\_Organisation20120222\_083000.xml"
z=${w//[^0-9]} # behält nur die Ziffern übrig
echo ${z:6:2}.${z:4:2}.${z:0:4},\ ${z:8:2}:blush:{z:10:2}\ Uhr

Ich hoffe, ich habe mich bei den vielen 2 nicht verzählt.

Viele Grüße
Marvin

Danke, ich habe es inzwischen mit tail und cut gelöst. Deine Variante wäre auch schön einfach gewesen, allerdings kann im Dateinamen u.U. eine Ziffer vorkommen…

Hallo,

mit sed geht es so:

echo "Status\_New\_Project\_Organisation20120222\_083000.xml" | \
sed "s/^.\*\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\_\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\.xml$/\3.\2.\1, \4:\5 Uhr/"

Gruß
Diether

Übergeben wird:
„Status_New_Project_Organisation20120222_083000.xml“

Mich interessieren dabei die numerischen Angaben am Ende, die
(wie man vielleicht sieht) das Datum und die Uhrzeit
darstellen. Diese Informationen möchte ich aus der Übergabe
rausziehen und darstellen als:

„22.02.2012, 08:30 Uhr“

Hatjemand einen Tipp für mich?

TEXT=„Status_New_Project_Organisation20120222_083000.xml“

ZAHL1=$(echo $TEXT | tr -d [:alpha:] | tr -d . | cut -d „_“ -f4)
ZAHL2=$(echo $TEXT | tr -d [:alpha:] | tr -d . | cut -d „_“ -f5)

DATUM=$(date -d $ZAHL1 +%x)
ZEIT="$(echo $ZAHL2 | cut -b1-2):blush:(echo $ZAHL2 | cut -b3-4)"

echo „$DATUM, $ZEIT Uhr“

Grüße
K.