Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
reuniger
- Beiträge: 47
- Registriert: 11.08.2016 11:01:05
Beitrag
von reuniger » 02.11.2016 10:10:09
Hallo zusammen,
ich stehe mal wieder davor und weiss nicht woher dieses Phänomen kommt....
Code: Alles auswählen
OS=$(grep operatingsystem_name wbf-u8030.wbf.admin.ch|awk -F"|" '{print $2}'|sed -e "s/\"//g")
echo $OS
RHEL 7.2 Server
Hostname=$(grep hostname wbf-u8030.wbf.admin.ch|awk -F"|" '{print $2}'|sed -e "s/\"//g")
echo $Hostname
wbf-u8030
Wenn ich das Ganze dann zusammen fummel...
erwartet hätte ich aber:
daher die Frage, wo kommt der Umbruch her?
-
MSfree
- Beiträge: 11605
- Registriert: 25.09.2007 19:59:30
Beitrag
von MSfree » 02.11.2016 10:17:29
reuniger hat geschrieben:wo kommt der Umbruch her?
Jeder echo-Befehl erzeugt einen Zeilenumbruch.
gibt also
aus.
Willst du es auf einer Zeile, mußt du
schreiben oder printf verwenden.
-
Meillo
- Moderator
- Beiträge: 9230
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 02.11.2016 10:19:19
reuniger hat geschrieben:
Wenn ich das Ganze dann zusammen fummel...
Wie genau fummelst du denn zusammen? Daran wird's wohl liegen.
Use ed once in a while!
-
Meillo
- Moderator
- Beiträge: 9230
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 02.11.2016 10:44:27
reuniger hat geschrieben:
Du solltest die Argumente quoten:
... und dann pipe mal das Ergebnis deines Befehls durch `od -c', damit du siehst *was* das fuer ein ``Umbruch'' war.
Use ed once in a while!
-
reuniger
- Beiträge: 47
- Registriert: 11.08.2016 11:01:05
Beitrag
von reuniger » 02.11.2016 10:48:22
Code: Alles auswählen
+ for x in '$TREFFER_HOST'
++ awk '-F|' '{print $2}'
++ sed -e 's/"//g'
++ grep hostname wbf-u3074.wbf.admin.ch
+ HOSTNAME=wbf-u3074
++ awk '-F|' '{print $2}'
++ sed -e 's/"//g'
++ grep comment wbf-u3074.wbf.admin.ch
+ COMMENT='Visualizer BV (PR)'
++ awk '-F|' '{print $2}'
++ sed -e 's/"//g'
++ grep operatingsystem_name wbf-u3074.wbf.admin.ch
+ OS='RHEL 7.2 Server'
+ od -c
+ printf '%-10s %s\n' wbf-u3074 Visualizer BV '(PR)'
0000000 w b f - u 3 0 7 4 V i s u a
0000020 l i z e r \n B V
0000040 ( P R ) \n
0000046
+ exit
Sorry, kann damit nicht viel anfangen...
Kannst Du das mal ausdeutschen?
-
Meillo
- Moderator
- Beiträge: 9230
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 02.11.2016 10:54:27
In POSIX findet man diesen schoenen Satz, der dann das Phaenomen vollends enthuellt:
Davor solltest du aber erst verstanden haben, in welcher Weise die Quotes hier etwas aendern. (Tipp: Wieviele Argumente bekommt printf(1)?)
Du solltest dir die printf-Ausgabe mit Hilfe von `od -c' anschauen, weil du da eher siehst, was wirklich passiert. Insbesondere wenn du mit den Laengenmodifiern bei %s rumspielst und die Veraenderungen beobachtest.
Am Ende sollte du in diesem Thread noch erklaeren, was das Problem war und was du daraus gelernt hast ... um die anderen Leser an deinem Lernerfolg teilhaben zu lassen.
Use ed once in a while!
-
reuniger
- Beiträge: 47
- Registriert: 11.08.2016 11:01:05
Beitrag
von reuniger » 02.11.2016 15:47:45
Meine Fresse was`ne Zangengeburt...
Code: Alles auswählen
for x in $TREFFER_HOST
do
HOSTNAME=$(grep hostname $x|awk -F"|" '{print $2}'|sed -e "s/\"//g")
COMMENT=$(grep comment $x|awk -F"|" '{print $2}'|sed -e "s/\"//g")
OS=$(grep operatingsystem_name $x|awk -F"|" '{print $2}'|sed -e "s/\"//g")
done
printf "%-15s %s" $HOSTNAME "$COMMENT" #| od -c
Ausgabe, wie es sich gehört