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