我有一項任務是將所有用戶的登錄名、全名和主目錄串列寫入檔案,這些用戶的全名(不是登錄名)的第一個字符是“A”或“Z”(處理檔案 /etc/passwd )。
我試過
> cat /etc/passwd | grep -i '^A\|^Z' > ex.list
但它也會輸出名字以 A 或 Z 以外的其他字母開頭的用戶。如何更改?
uj5u.com熱心網友回復:
- 使用
getent獲得passwd條目不論它是本地/etc/passwd檔案或? etworked我載文資訊小號ervice。 - 使用
awk過濾所需的用戶條目,然后列印自己的真實姓名和家庭目錄屬性。
getent passwd | awk -F: '$5 ~ /^[AZ]/{printf("%s\t%s\n", $5, $6)}'
awk -F::awk使用:欄位分隔符呼叫。
awk 程式本身
# Filter field 5 containing Real Name
# and regex match it starts with upper-case A or Z
$5 ~ /^[AZ]/{
# For each selected entry
# Print a tab formatted list with fields 5 and 6
# witch contains the Real-Name and Home Directory
printf("%s\t%s\n", $5, $6)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/368546.html
上一篇:滑動擴展影片旁邊的專案
下一篇:如何通過Shell腳本更改用戶名
