.png)
ファイルには、/etc/passwd
いわゆるGECOS fields
(「General Electric Comprehensive Operating System」の略) が含まれています。
username:password:userid:groupid:gecos:home-dir:shell
次のように分けGECOS
られます:
:FullName,RoomAddress,WorkPhone,HomePhone,Others:
Others
好きなだけコンマで区切ることができます。
:FullName,RoomAddress,WorkPhone,HomePhone,Other1,Other2,Other3:
ページにはman chfn
次のように書かれています:
その他のフィールドは、他のアプリケーションで使用されるアカウンティング情報を保存するために使用されます。
さて、アプリケーション開発者(私はC language
、system calls
および/またはに興味がありますbash script
)にとって、この情報を取得する最適な方法はどれでしょうか?
また、環境だけを考慮するとBash
、finger
コマンドがフィールドを表示できないothers
(または、少なくとも方法がわかりません) 場合、フィールドを表示できる他のコマンドは何ですか?chfn
表示するだけでなく、変更できることは知っています。 に出力するだけの場合はどうでしょうかstdout
?
答え1
私が見つけた最良の方法は、getent
LDAP/NISまたは非ローカルユーザーの他の方法で機能するため、使用することです。
getent passwd $UID| awk -F ":" '{print $5}'
答え2
答え3
ネストされた 2 つの cut コマンドを使用するだけです。
- まずフィールドセパレータとして「:」を使用し、フィールド1と5を切り取ります。
- 2番目に、フィールド区切り文字として「,」を使用し、フィールド1と5-Nを切り取ります。