2

コマンド tcpdump を使用していくつかのクライアント IP アドレスを抽出および収集しようとしていますが、grep/sed/awk を取得して出力の最初の IP アドレスだけを取得する方法がわかりません。次を実行すると

# tcpdump -t -i vlan4 -n  ip dst host 192.168.2
tcpdump: listening on vlan4, link-type EN10MB

tcpdump: WARNING: compensating for unaligned libpcap packets

10.28.6.1.29447 > 192.168.2.62.22: P 3758838950:3758839034..

10.28.6.1.29447 > 192.168.2.62.22: P 84:136(52) ack 117..

10.28.6.1.29447 > 192.168.2.62.22: P 136:188(52) ack 233..

10.28.6.1.29447 > 192.168.2.62.22: . ack 349 win 251 (DF)..

ポート番号なしで各行の最初のIPを取得したいだけです。したがって、上記の出力から、取得したいのは.....

10.28.6.1

10.28.6.1

10.28.6.1

10.28.6.1

ありがとう

4

2 に答える 2

1

このカットラインを試してください:

cut -f1-4 -d "."

あなたのデータでテストしてください:

kent$ echo "10.28.6.1.29447 > 192.168.2.62.22: P 3758838950:3758839034..

10.28.6.1.29447 > 192.168.2.62.22: P 84:136(52) ack 117..

10.28.6.1.29447 > 192.168.2.62.22: P 136:188(52) ack 233..

10.28.6.1.29447 > 192.168.2.62.22: . ack 349 win 251 (DF).."|cut -f1-4 -d "."
10.28.6.1

10.28.6.1

10.28.6.1

10.28.6.1
于 2013-03-05T21:01:36.880 に答える
0
perl -lane '$F[0]=~s/(.*)\..*/$1/g;print $F[0]' your_file
于 2013-03-06T02:19:27.777 に答える