2014-11-22 119 views
-1

我想知道cat passwd | awk -F':' '{printf $1}'的工作原理。 cat /etc/passwd是从根目录到当前用户的具有ID和文件夹的用户列表(我不知道它是否与cat passwd有关)。 -F是某种输入文件,并且{printf $1}正在打印第一列。这就是我迄今为止搜索到的,但似乎让我感到困惑。

任何人都可以帮助我或向我解释,如果它是正确的或错误的,请?

+0

对还是错?根据什么? – Maroun 2014-11-22 21:50:13

+0

除此之外,它假定你当前在'/ etc'目录下,或者你当前目录下有一个'passwd'文件。如果您确实需要系统密码文件,请使用完整路径名“/ etc/passwd”。如果系统使用除/ etc/passwd之外的机制(如NIS或LDAP),则不会显示所有用户名。所有这些命令都有很好的文档记录; 'awk'本来会告诉你什么'-F'的意思(它不是“某种输入文件”)。 – 2014-11-22 22:17:10

+0

@MarounMaroun命令。 – 2014-11-23 02:45:02

回答

0

这相当于awk -F: '{print $1}' passwdcat命令是多余的,因为它所做的只是读取文件。

-F选项确定awk的字段分隔符。结肠周围的引号也是多余的,因为冒号在这种情况下并不是特殊的。 print调用告诉awk使用$1打印第一个字段。您未传递格式字符串,因此您可能的意思是print而不是printf