sub ipv6squeeze ($) { $_[0] =~ s#(^|:)0+#$1#gr =~ s#:::+#::#gr }
# perl -le 'print sub { $_[0] =~ s#(^|:)0+#$1#gr =~ s#:::+#::#gr }->($ARGV[0])' \ 2a01:00d0:ffff:0033:0000:0000:0000:00022a01:d0:ffff:33::2
# perl -le 'print sub { $_[0] =~ s#0+([[:xdigit:]]+)(:|$)#$1$2#gr =~ s#(:0){2,}#:#r }->($ARGV[0])' \ 0001:0000:0000:0001:0000:0000:0001:0001 1::1:0:0:1:1 # perl -le 'print sub { $_[0] =~ s#0+([[:xdigit:]]+)(:|$)#$1$2#gr =~ s#(:0){2,}#:#r }->($ARGV[0])' \ 02a1:00d0:ffff:0000:0001:0000:0000:0002 2a1:d0:ffff:0:1::2
# print 0001:0000:0000:0000:0000:0000:0001:0001 | \ perl -lne 'print sub { $_[0] =~ s#0+([[:xdigit:]]+)(:|$)#$1$2#gr =~ s#(:0){2,}#:#r }->($_)' | \ perl -lne 'my @a=split":"; print join ":", map { sprintf "%04x", hex($_) } $#a == 7 ? @a : ( map { $_ ne "" ? $_ : (0)x(8-$#a) } @a )' 0001:0000:0000:0000:0000:0000:0001:0001
no subject
Date: 2015-05-10 08:23 pm (UTC)no subject
Date: 2015-05-19 11:04 am (UTC)unsqeeze будет выглядеть более безобразно:
Может потом причешу.