1#!/bin/sh
2nawk 'BEGIN {FS=":"} 
3{
4	if( $0 ~ "^#" ) {
5		print $0
6	} else if( (length($4) == 32) && (($4 ~ "^[0-9A-F]*$") || ($4 ~ "^[X]*$") || ( $4 ~ "^[*]*$"))) {
7		print $0
8	} else {
9		printf( "%s:%s:%s:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:", $1, $2, $3);
10		for(i = 4; i <= NF; i++)
11			printf("%s:", $i)
12		printf("\n")
13	}
14}'
15