Duda con sub en AWK

Imagen de CroMag
0 puntos

Lo que quiero hacer es en el tipico archivo etc/group, borrar un usuario de la lista del grupo.

Si tengo: root:x:0:root,pepe,juan

Por ejemplo quiero eliminar a juan, para ello hago lo siguiente:

l=juan

awk -F":" -v nombre="$l" '{ sub(nombre,"",$4) }; { print }' /etc/group

Si en el tercer campo del sub, no pongo $4 funciona a la perfeccion, el problema es cuando el nombre del grupo es igual que lo que quiero eliminar, en cuyo caso tambien lo borra, por eso quiero especificar que solo sustituya la cadena en el 4º campo.

Pero al ejecutar el codigo del ejemplo me elimina tambien los separadores de campo y no se porque.

Me aparece asi: root x 0 root,pepe,

A ver si podeis explicarme porque se borran tambien los separadores.Saludos y Gracias