Você poderia split
o segundo campo em :
e se obtiver mais de 2 partes (ou seja, o número de elementos na matriz z
) manterá somente o primeiro:
awk '{n=split($2, z, ":");if (n > 2) $2=z[1]};1' infile
Se você quisesse usar sub
, poderia fazer algo como:
awk '{sub(/:.*:.*/,"",$2)};1' infile
isto é, tente substituir dois dois pontos (ou mais).