#!/usr/bin/perl -l for (@ARGV) { s/([0-9a-fA-F]+)/sprintf '%.4x', hex $1/ge; next unless m/::/; s/::/:0000::/ while length($_) < (32+32/4-1); s/::/:/; } continue { print }