Shell-Script

回顯具有特定 gid 的使用者

  • January 6, 2019

我應該編寫一個 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函式。看:

所以你只需要:

  • 了解-FAwk 的選項
  • 對 awk 語法的基本了解,即condition {action}
  • 了解使用 Awk 時如何引用欄位,以及
  • 如果您了解如何將 shell 變數傳遞給 Awk,將會有所幫助;查看-vAwk 的選項。

查看 Awk 的手冊頁以獲取這些要點。


我不會為你做作業——重點是學習編碼,而不是學習複製和粘貼。但是,如果您對此感到困惑,請對此問題發表評論。如果需要,我可以添加更多細節。(大約一周後,我可以更新以包含完整的解決方案。)


旁注:在現實世界中,正如您從其他答案中看到的那樣,與查找使用者相關的複雜性要多得多。儲存使用者的方式有很多種,考慮到這些複雜性可能……很複雜。

但是您的問題似乎是為使用 Awk 輕鬆完成而量身定制的任務,同時也是一個在現實世界中有用的現實應用程序。

引用自:https://unix.stackexchange.com/questions/367774