LINUX.ORG.RU

grep, awk, sed... Извлечь ipv6.

 


0

2

Не силен я в regexp-ах.... Мне нужно извлечь свой teredo ipv6. Тоесть, в данном случае 2001:0:53aa:64c:20d7:4e00:a621:5616

Ниже вывод из которого я, собственно хочу вытащить ip. Заранее спасибо.

eth0      Link encap:Ethernet  HWaddr b8:27:eb:7c:e3:ab  
          inet addr:192.168.1.38  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::fc88:c387:c75d:392/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7615 errors:0 dropped:1 overruns:0 frame:0
          TX packets:6739 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:759191 (741.3 KiB)  TX bytes:975912 (953.0 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:220 errors:0 dropped:0 overruns:0 frame:0
          TX packets:220 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:18180 (17.7 KiB)  TX bytes:18180 (17.7 KiB)

teredo    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet6 addr: 2001:0:53aa:64c:20d7:4e00:a621:5616/32 Scope:Global
          inet6 addr: fe80::ffff:ffff:ffff/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1280  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:144 (144.0 B)



Последнее исправление: beastie (всего исправлений: 1)

awk '/inet6 addr:/ {print $3}'

anonymous
()
awk '/inet6 addr.*Scope:Global/ { sub(/\/.*/, "", $3); print $3; }'
beastie ★★★★★
()
ifconfig teredo | grep inet6 | perl -pi -e 's/.*inet6.* ([0-9a-z,:\/]*) .*/\1/'
kostik87 ★★★★★
()

А как бы еще из

2001:0:53aa:64c:20d7:4e00:a621:5616/32 fe80::ffff:ffff:ffff/64

Вынуть

2001:0:53aa:64c:20d7:4e00:a621:5616

:).

Mirmik
() автор топика
Ответ на: комментарий от Mirmik
echo "2001:0:53aa:64c:20d7:4e00:a621:5616/32 fe80::ffff:ffff:ffff/64" | awk '{print($1)}' | cut -d '/' -f 1
post-factum ★★★★★
()

cat /proc/net/if_inet6

snaf ★★★★★
()

Если именно Teredo (2001::/32), то так:

ifconfig (ip a) | grep -oE ' 2001:[0-9a-f:]+/32 ' | grep -oE '2001:[0-9a-f:]+'

tiandrey ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.