ausgabe formatieren mit sed/grep??

S

SilverICE

Jungspund
hallo

ich habe ein formatierungs problem

ich lese von einem windowsserver die ip´s aus.. über ssh und wmic...

ich habe 2 befehle um die information zu bekommen die ausgabe sieht wie folgt aus

mit zeilenangabe:

1. {"164.*.*.57"}
2.
3.
4.
5.
6.

mit dem anderen befehl sieht es wie folgt aus

IPAddress={"164.*.*.57"}

bei mehreren ip´s

IPAddress={"164.*.*.57","164.*.*.56"}

meine ausgabe soll aber wie folgt aussehen

<NET_IP>
<NET_IP> 164.*.*.57 </NET_IP>
</NET_IP>

bei mehreren ip´s

<NET_IP>
<NET_IP> 164.*.*.57 </NET_IP>
<NET_IP> 164.*.*.56 </NET_IP>
</NET_IP>

kann mir wer helfen? ich weiß nicht weiter.. mit dem grep befehl bin ich gescheitert, ich denke ja mit sed geht es irgendwie... nur wie??

danke schon mal
cu silver
 
Probiers mal mit awk:
Code:
danielt:~/test> cat ips
{"164.*.*.57"}
{"164.*.*.56"}
danielt:~/test> cat ips.awk 
#!/usr/bin/awk

BEGIN {
  print "<NET_IP>"
}
END {
  print "</NET_IP>"
}

{
  gsub("\{\"", "");
  gsub("\"\}", "");
  print "<NET_IP> " $0 " </NET_IP>";
}
danielt:~/test> awk -f ips.awk < ips
<NET_IP>
<NET_IP> 164.*.*.57 </NET_IP>
<NET_IP> 164.*.*.56 </NET_IP>
</NET_IP>
 
hi danke für die antwort


ich werde es gleich mal austesten..

was mir aufgefallen ist, die ausgabe wenn mehreren ip´s vorhanden sind ist immer gleich

IPAddress={"164.*.*.57","164.*.*.56"}

alle ip´s stehen neben einander, werden allerdings von einem , getrennt :)
 
hi meine ausgabe ist jetzt

164.*.*.56 164.*.*.57

wie bekomme ich das jetzt unter beachtung das es auch mehr ip´s sein können untereinander geschrieben?

cu silver
 
Wieso nimmst du nicht den 1. Befehl, der 1. 10.*.*.* ausgibt? die ausgabe leitest du in ein file um. z.B.: Befehl > ipfile

Dann schreibst du dieses script:

#!/bin/bash
# IPscript
echo "<NET_IP>"
awk '{print "<NET_IP> " $2 " </NET_IP>"}' ipfile
echo "<NET_IP>"

#!/bin/bash
# IPscript
echo "<NET_IP>"
DeinBefehl | awk '{print "<NET_IP> " $2 " </NET_IP>"}'
echo "<NET_IP>"




Is doch ganz kurz und funkt wunderbar.

Noch einfacher gehts natürlich so:
 
Zuletzt bearbeitet:
wie gesagt unter beachtung das auch mehrere ip´s vorhanden sein können... dann hilft mir $2 nicht mehr... und schleifen will ich auch vermeiden..

aber ich habe es hinbekommen mit xargs -n 1 und dann noch nen awk zu formatierung hinten dran..

danke an alle

cu
 
Bitte!

Aber so wie du es aufgeschrieben hast, dibt der 1. befehl die IP's untereinander aus. also sehe ich da kein problem? Aber egal.
 
stimmt war mein fehler .. falsche aussage sry
 
In meinem is trotzdem ein fehler, weil ich hab die klammern und anführungszeichen nich verschwinden lassen.

Aber hauptsache du hast jetz ne Lösung!
 

Ähnliche Themen

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

squid transparent proxy will nicht transparent werden !! :-(

Image einer NTFS-Partition verhält sich anders als sie selbst

externe Festplatte wird nach neustart nicht mehr "erkannt"

"net groupmap list" und "pdbedit" funktionieren nicht

Zurück
Oben