PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : echo tab problem



Mathew73
01-12-2005, 07:16
Hallo zusammen,

ich habe ein Script, was in zwei Zeilen auf der Console eine Ausgabe als Tabelle macht.

Beispiel:

NAME VORNAME STRASSE TELEFON
Heinz Johannes Burgstr. 5 12345

Die Anpassung erfolgt mit \t, damit er immer zum nächsten springt.

Nun habe ich aber das Problem, wenn ein Wert nicht vorhanden ist, oder ein Wert zu lang ist, dass die Tabellen nicht mehr stimmen.

Beispiel:

NAME VORNAME STRASSE TELEFON
Heinz Burgstr. 5 12345 <-- wenn Vorname fehlt
Heinz Johannes-Ludwig-Casper Burgstr. 5 12345 <--- wenn ein Feld zu lang.

Gibt es da eine Lösung ???

Dankäääää

quinte17
01-12-2005, 07:36
kommt drauf an, wann du schon weißt dass ein feld zu lang ist.
wenn du zeilengebundenen code hast, dann kannst du beim 1. datensatz nicht sehen, dass der 4. zu lang ist.
du müsstest also ein vorab pasing machen, damit du des schön abfangen könntest.
alternativ wäre ja auch ein zeilenumbruch möglich:


_name_______Vorname______Strasse
huber hans dorfweg
> am teich 8
// Hier ist ein umbruch aus obiger zeile

greetz

ninguno
01-12-2005, 07:43
du könntest printf zur formatierung verwenden:
printf '|%-20s | %-20s | %-20s | %-20s |\n' NAME VORNAME STRASSE TELEFON
printf '|%-20s | %-20s | %-20s | %-20s |\n' Heinz Johannes "Burgstr. 5" 12345
printf '|%-20s | %-20s | %-20s | %-20s |\n' Heinz "" "Burgstr. 5" 12345

Mathew73
01-12-2005, 10:18
hehe, das mit dem "printf" löst wohl das Problem. Muss eben alles wieder umschreiben :-(

Ich hatte schon folgendes genutzte was auch klappt, aber doch sehr kompliziert ist:
COUNTER=1
LEERZEICHEN=`expr 5 - $ZEICHEN`
while [ $COUNTER -le $LEERZEICHEN ]
do
echo -n " "
COUNTER=$[COUNTER+1]
done