PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : formatierung des STDOUT



marcdevil
08-02-2002, 15:08
hi
ich moechte eine saubere darstellung mit echo ausgeben, aber habe probleme mit TAB.


echo "$x"\ \("$y"\)\ gehoert\ zu\:"$z"

ergibt ja schliesslich


xxxxxxxxx (yyyyyyyyyy) gehoert zu:zzzzzzzzz
xxxxxxxxxxxxxxxxxx (yyyyyyyyyyy) gehoert zu:zzzzzzzz

ich moechte aber


xxxxxxxxx (yyyyyyyyyy) gehoert zu:zzzzzzzzz
xxxxxxxxxxxxxxxxxx (yyyyyyyyyyy) gehoert zu:zzzzzzzz

als ergebniss, was kann ich tun ?

fork
08-02-2002, 15:25
nimm lieber printf:

z.B.

printf "Zahl1: %3d Zahl2: %4d" $X $Y

%d steht für Integer
%f steht für Fliesskomma
%s steht für String
Die Zahl gibt die mindestlänge an.

Gruß
Tobias

geronet
08-02-2002, 15:37
Hi fork, er hatte aber bash gemeint...

Also du kannst ja mal "\t" versuchen:

echo -e "hier sind drei tabs:\t\t\tso hier is ende"

Steht auch in der manpage von echo.

Grüsse, Stefan

fork
08-02-2002, 17:52
@geronet: ich auch



tobias@ax301:~> type printf
printf is a shell builtin

marcdevil
12-02-2002, 12:38
vielen Dank, hat geklappt mit printf



#!/bin/ksh
cd /export/home
for i in * ; do
name=$(finger "$i"|grep Login\ name|uniq|sed -e 's/Login\ name\:\ //g' -e 's/.*In\ real\ life\:\ //g' -e 's/\ \ //g' -e 's/\ //g')
groups=$(groups "$i" 2>/dev/null)
if [ "$name" != \?\?\? ];then
### formatiereter Output ###
printf "%-20s%-9s%-4s%-4s\n" "$name" \|"$i" \| gehoert\ zu\ den\ Gruppen\:"$groups"
### vielen dank an fork ###
fi
done
exit 0