Why when I issue a command like:
awk -F: -v U="$LOGNAME" '$1==U{print $5}' /etc/passwd
or
grep $USER /etc/passwd | awk 'BEGIN { FS=":" } { print $5 }'
is displayed Diogo Saraiva,,,
instead of Diogo Saraiva
?
When I installed Ubuntu 14.04 I wrote Diogo Saraiva
, not Diogo Saraiva,,,
in Full name field...
result of cat /etc/passwd | grep diogosaraiva
:
diogosaraiva:x:1000:1000:Diogo Saraiva,,,:/home/diogosaraiva:/bin/bash
Can I change that line for
diogosaraiva:x:1000:1000:Diogo Saraiva:/home/diogosaraiva:/bin/bash
without any problem?
And my user isn't the unique issue.
In /etc/passwd file:
...
diogosaraiva:x:1000:1000:Diogo Saraiva,,,:/home/diogosaraiva:/bin/bash
sshd:x:116:65534::/var/run/sshd:/usr/sbin/nologin
mysql:x:117:125:MySQL Server,,,:/nonexistent:/bin/false
sysop:x:1001:1001::/home/sysop:/bin/bash
dovecot:x:118:126:Dovecot mail server,,,:/usr/lib/dovecot:/bin/false
dovenull:x:119:127:Dovecot login user,,,:/nonexistent:/bin/false
postfix:x:120:128::/var/spool/postfix:/bin/false
vmail:x:5000:5000::/var/mail:
...
grep $USER /etc/passwd | awk -F'[,:]' '{print $5}'
awk -F'[??]'
allows you to choose multiple field separators. Field separators are not included in your output.awk -F'[:,]' -v U="$LOGNAME" '$1==U{print $5}' /etc/passwd
works for the first line. Also, the 3 commas are extra information for that field like phone number, address, etc. Probably not wise to remove them. Hope that helps.awk -F'[:,]' -v U="$LOGNAME" '$1==U{print $5}' /etc/passwd
andgrep $USER /etc/passwd | awk -F'[,:]' '{print $5}'
worked :)