Scripting
檢查 /etc/passwd 中的使用者是否存在於不同文件中的命令
是否可以查詢 /etc/passwd 文件以查看所有小於 200 的使用者 UIDS 並檢查這些使用者是否在 /etc/ftpusers 等文件中?
到目前為止,我已經設法製作了下面的命令,該命令列出了 UID 低於 200 的所有使用者,但我不確定如何檢查這些列出的使用者是否在 /etc/ftpusers 文件中。
grep -Ev "^\+" /etc/passwd | awk -F: '($3 < 200) {print $1}'
如果文件中沒有任何使用者,我需要輸出差異。我曾嘗試使用 for 語句,但效果不佳。
我不知道是否
aix diff
有相同的選項,GNU diff
但是在我的linux
this 中使用ksh
(預設 shellaix
)執行時:diff -I "^#" --new-line-format="" --unchanged-line-format="" <(awk -F: '$3 < 200 {print $1}' /etc/passwd) /etc/ftpusers
如果
diff
命令不同,請嘗試循環:for u in $(awk -F":" '$3 < 200 {print $1}' /etc/passwd); do count=$(grep -scx "$u" /etc/ftpusers) [ "$count" -gt 0 ] || echo "$u" done
我已經對其進行了測試,
ksh
並且可以正常工作。我還檢查了分佈式 whit
grep
中可用的選項,它支持計數和抑制錯誤消息。grep``aix``-c``-s