/ etc/passwdからすべてのユーザーとそのUIDをリストするLinux用のスクリプトを作成する方法
User1 uid=0001
User2 uid=0002
...
スクリプトが使用するもの:grep、cut、id、for
awk -F: '$0=$1 " uid="$3' /etc/passwd
この場合、awkの方が簡単です。
-Fは、フィールド区切り文字を:
として定義します
あなたが欲しいのは1列目と3列目です。 $0
をビルドして、出力形式を提供します。
これは強力なawkの非常に基本的な使用法です。この種の問題に頻繁に直面した場合は、いくつかのチュートリアルを読むことをお勧めします。
今回はあなたが魚を手に入れました、私ならあなたは釣りの仕方についていくつかの研究をします。
cut
はこれに最適です:
cut -d: -f1 /etc/passwd
これは、「:
ファイルの各行の最初のフィールドを除くすべてを、区切り文字として/etc/passwd
を使用して切り取る」ことを意味します。
私は最良の選択肢はそれだと思います:grep "/bin/bash" /etc/passwd | cut -d':' -f1
awk -F':' '$3>999 {print $1 " uid: " $3}' /etc/passwd | column -t | grep -v nobody
ユーザーIDを含めて、すべての通常ユーザー(uid> = 1000)をきちんと注文できます。