`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}'