Shellscript: Letztes Zeichen einer Variable auslesen

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
michseel2
Posts: 34
Joined: 2007-07-09 23:00

Shellscript: Letztes Zeichen einer Variable auslesen

Post by michseel2 » 2007-08-23 14:19

Hallo,

ich habe ein Shellscript, das mir z. B. "587M" oder "9.7G" ausgibt (Befehl: du -h --max-depth=1 | tail -n 1 | awk '{ print $1 }').

Nun möchte ich mit einem Shellscript prüfen, ob das letzte Zeichen der Größenausgabe "M" oder "G" ist. Wie ist das möglich?

Gruß
michseel2

michseel2
Posts: 34
Joined: 2007-07-09 23:00

Re: Shellscript: Letztes Zeichen einer Variable auslesen

Post by michseel2 » 2007-08-23 21:26

Danke, aber leider komm ich damit nicht zurecht. Und in der Manpage heißt es: "cut - remove sections from each line of files"

Ich möchte das ja auf einen Buchstaben einer Ausgabe anwenden, nicht auf eine Datei. Könntest du mir sagen, wie genau das funktioniert?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Shellscript: Letztes Zeichen einer Variable auslesen

Post by Joe User » 2007-08-23 22:09

Quick&Dirty&Untested:

Code: Select all

sed 's/^[[:digit:]]*.+[[:digit:]]*([[:alpha:]])$/1/

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: Shellscript: Letztes Zeichen einer Variable auslesen

Post by daemotron » 2007-08-23 22:31

Einfachere Lösung:

Code: Select all

du -m -s . | awk '{print $1}'
tail ist überflüssig, wenn Du `du` gleich mitteilst, was Du haben willst. Und wenn Du -m anstelle von -h verwendest, brauchst Du auch nicht mehr überlegen, ob Du es mit Gibi- oder Mebibytes zu tun hast.

juergen
Posts: 133
Joined: 2004-03-30 14:44

Re: Shellscript: Letztes Zeichen einer Variable auslesen

Post by juergen » 2007-08-23 23:15

output=`dein_du_kommando`

case ${output: -1} in
G) echo "Giga";;
M) echo "Mega";;
K) echo "Kilo";;
*) echo Unknown
esac