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)
(echo $ZAHL2 | cut -b3-4)"
echo „$DATUM, $ZEIT Uhr“
Grüße
K.