Shell-Script
回顯具有特定 gid 的使用者
我應該編寫一個 shell 腳本,它將回顯使用者的使用者名,其主要組等於 id 是命令行參數的組。
由於您是通過 GID 而不是 group name進行查找,並且您只對每個使用者的主GID 感興趣,因此使用 Awk 非常容易。
的格式在
/etc/passwd
中描述man 5 passwd
。引用手冊頁:There is one entry per line, and each line has the format: account:password:UID:GID:GECOS:directory:shell
因此,您希望為每一行列印第一個欄位,其中第四個欄位是傳入腳本的內容。其中“欄位”由冒號分隔。
就我個人而言,我不會為此煩惱腳本;我會使用一個shell函式。看:
所以你只需要:
- 了解
-F
Awk 的選項- 對 awk 語法的基本了解,即
condition {action}
- 了解使用 Awk 時如何引用欄位,以及
- 如果您了解如何將 shell 變數傳遞給 Awk,將會有所幫助;查看
-v
Awk 的選項。查看 Awk 的手冊頁以獲取這些要點。
我不會為你做作業——重點是學習編碼,而不是學習複製和粘貼。但是,如果您對此感到困惑,請對此問題發表評論。如果需要,我可以添加更多細節。(大約一周後,我可以更新以包含完整的解決方案。)
旁注:在現實世界中,正如您從其他答案中看到的那樣,與查找使用者相關的複雜性要多得多。儲存使用者的方式有很多種,考慮到這些複雜性可能……很複雜。
但是您的問題似乎是為使用 Awk 輕鬆完成而量身定制的任務,同時也是一個在現實世界中有用的現實應用程序。