• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Shell scripting

xforze

Newbie
Hallo,

Ich hab da ein kleines Problem mit einer String bearbeitung in einer Shell.
Ich lese den Traffic eines Ports mit IPTables aus, das Ergenbis sieht dann so aus:

252115 10460358 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:27965

Das Kommando ist:

iptables -L INPUT -v -n -x | grep udp | grep :27965

jetzt interessiert mich aber nur der 2. Block, also die 10460358.
Ich habs schon mit awk oder cut versucht den string zu schneiden, aber habs nie hinbekommen.
Kann mir da jemand helfen?

Vielen Dank,

Thomas
 

scg

Hacker
Hallo Thomas,

mit awk könntest Du mit dem Fieldseparator Blank (FS=" ") arbeiten. Dann wäre das Feld $2 das gewünschte.
 

JINX

Newbie
Probier es mal hiermit

iptables -L INPUT -v -n -x | grep udp | grep :27965 | nawk { print $2}
 

scg

Hacker
Ja, schaut gut aus. Müsste das nawk-Programm aber nicht mit einfachen Hochkommas vor der bash "geschützt" werden ?
Code:
iptables -L INPUT -v -n -x | grep udp | grep :27965 | nawk '{print $2}'
Als Vereinfachung könnte auf grep auch noch verzichtet werden, wenn schon nawk im Einsatz ist:
Code:
iptables -L INPUT -v -n -x | nawk '$9=="udp" && $10=="dpt:27965" {print $2}'
(Ich hoffe jetzt mal dass die Feldnummern stimmen...)
 
Oben