从/etc/passwd
,我只需要“用户”部分。
例子:
backup:x:34:34:backup:/var/backups:/bin/sh
作为backup
用户。
要提取我现在使用的用户部分:
perl -pe 's/^(.*?):.*/\1/g' < /etc/passwd
这比我的旧方法少了几个字符:
while read line; do echo ${line%%:*}; done < /etc/passwd
但这听起来有点矫枉过正。有很多文字要写。
谷歌搜索给了我:
awk -F ':' '{print $1}' < /etc/passwd
我想哪个是等效的?是吗?
cmp <(perl -pe 's/^(.*?):.*/\1/g' < /etc/passwd) <(awk -F ':' '{print $1}' < /etc/passwd)
是否有标准的 UNIX 工具来执行此操作或使用 perl 的更简单的方法?或者cut
?
我是初学者。
顺便说一句,我按如下方式尝试了 Python,但我很烂,在 Python 中可能有更好的方法来做到这一点:(
python -c 'print "\n".join([u[:u.find(":")] for u in open("/etc/passwd")])'
编辑:实际上,对于 Python,可能更像这样:
python -c 'print "\n".join([u.split(":")[0] for u in open("/etc/passwd")])'
嗯……还是很啰嗦。