Вы можете использовать Awk или Perl:
gawk -F: '
$4 != "" {
n = split($4,a,/,/);
asort(a);
for (i=1;i<n;i++) printf "%s,", a[i];
print a[n]
}
' /etc/group
или
perl -F: -lne '
print join ",", sort split /,/, $F[3] if $F[3] =~ /\S/
' /etc/group
Обе пропускают группы с пустыми списками участников; вы можете опустить этот тест и / или повторно -написать другие поля, если хотите, например.
$ perl -F: -lne 'print join ":", @F[0..2], join ",", sort split /,/, $F[3]' /etc/group > group.sorted
$
$ diff /etc/group group.sorted
5c5
< adm:x:4:syslog,steeldriver
---
> adm:x:4:steeldriver,syslog