2014-11-22 120 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