这个命令是做什么的?我怎么在终端上看到它,因为我写的时候什么都没有cat passwd | awk -F':' '{printf $1}'
答案1
cat passwd
passwd
输出当前目录中文件的内容。awk
然后,该命令解析它,使用:
作为字段分隔符来拆分每行,并打印第一个字段。
如果您没有得到任何输出,请执行以下操作:
passwd
当前目录中没有该文件- 有一个文件,但是它是空的
- 有一个文件,但是其中所有行的第一个字段都是空的(以 开头的行
:
)。
该命令可能要执行的操作是解析/etc/passwd
。在这种情况下,您可以执行以下操作:
awk -F: '{print $1}' /etc/passwd
此外,除非您想将命令限制为本地帐户,否则请使用getent passwd
而不是使用文件/etc/passwd
:
getent passwd | awk -F: '{print $1}'
答案2
我认为这是一个从系统中提取所有用户名的格式错误的命令:
cat passwd
打印文件的输出passwd
,大概/etc/passwd
。awk -F':' {printf $1}
使用分隔符分隔输入(由 cat 提供):
,然后仅打印第一个标记,即用户名。
它不起作用,因为/etc
默认情况下不在路径变量中,因此必须提供路径,而不仅仅是文件名。此外,结果无法正确解析,因为 awkprintf
不会在末尾放置换行符,而 则相反print
。
IMO 正确的命令如下:
cat /etc/passwd | awk -F':' '{print $1}'