我希望获得“友好”的名称,而不是用户名,至少对于给定的用户存在这样的字符串。我尝试过的东西:
whoami
jamesarosen
id -un
jamesarosen
id -p
uid jamesarosen
groups staff com.apple.access_screensharing ...
id -P
jamesarosen:********:501:20::0:0:James A. Rosen:/Users/jamesarosen:/bin/bash最后一个文件包含了我正在寻找的信息,但我不希望解析出来,特别是因为我不太确定格式(特别是:的数量)在整个OSes中是否保持一致。
发布于 2012-11-06 07:24:24
解析GECOS字段以获取用户的全名
etc/passwd和大多数GECOS field的格式在类Unix系统中标准化得非常好。如果你发现了异常,一定要让我们知道。同时,在类Unix系统上获得所需内容的最简单方法是使用getent和cut来解析GECOS字段。例如:
getent passwd $LOGNAME | cut -d: -f5 | cut -d, -f1发布于 2012-11-06 07:23:35
我所知道的唯一方法就是解析它:
grep -P "^$(whoami):" /etc/passwd | cut -f5 -d:您可以非常确定/etc/passwd的格式
发布于 2012-11-06 07:47:02
您可以使用finger获取该信息:
finger `id -un` | head -1 | cut -d: -f3-它的优点(或缺点,取决于您的需求)是它也将为非本地用户检索信息。
如果您只想从/etc/passwd获取信息,则很可能必须以某种方式解析文件,正如其他人已经提到的那样。就我个人而言,我更喜欢awk来完成这项任务:
awk -F: -vid=`id -u` '{if ($3 == id) print $5}' /etc/passwdhttps://stackoverflow.com/questions/13241964
复制相似问题