PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash: String manipulieren und ggf. kürzen



meinereinerseiner
15-01-2010, 13:45
Hallo,

wie kann ich einen string manipulieren wo, wenn er 4 stellig und als letzte stelle eine 0 hat, diese wegschneiden. der feldtrenner ist immer ein ".", die feldlänge und feldanzahl ist variabel.
also

1.12.0 = 1.12.0
1.1.1.12 = 1.1.1.12
1.44.1.1.0 = 1.44.1.1.0

1.1.1.0 = 1.1.1
1.34.2.0 = 1.34.2

komme da irgendwie grad nich weiter.

thx,
tom

undefined
15-01-2010, 14:28
Viele wege führen nach ...
z.B. : sed, cut oder printf

printf "%.4b\n" 1.12.0

meinereinerseiner
15-01-2010, 14:58
naja, der schneidet einfach nur ab, egal wieviele felder.
quasi das selbe wie ein:

sed 's/\(.*\)..$/\1/'

ich habs jetzt verry dirty mit:

ORIG_IFS=$IFS
IFS="."
CNT="0"
for i in $Version
do
CNT=$[$CNT+1]
LASTP=$i
done
IFS=$ORIG_IFS
if [ "$CNT" = "4" -a "$LASTP" = "0" ]; then
Version=`echo "${Version}" | sed 's/\(.*\)..$/\1/'`
fi
gemacht.
erfüllt erstmal seinen zweck und geht sicher auch noch viel eleganter, aber was solls.

tom