cut -f 1,3 -d ':' --output-delimiter=' ' /etc/passwd
上記のコードを使用すると、次のような結果が得られます。
root 0
bin 1
daemon 2
adm 3
lp 4
sync 5
shutdown 6
halt 7
mail 8
operator 11
games 12
ftp 14
nobody 99
systemd-network 192
dbus 81
polkitd 999
ntp 38
sshd 74
postfix 89
chrony 998
adilfanta 1000
miked 5001
mca 5002
mdrock 5003
finalexam 5004
mysql 27
apache 48
各行について以下のような結果を得たいと思います。
Name mca and uid 5002
答え1
awk
提供された生の列抽出に加えて、出力フォーマットの柔軟性を高めますcut
。
awk -F : '{ printf "Name %s and uid %d\n", $1, $3 }' /etc/passwd
/etc/passwd
または、ディレクトリサービスを使用できるシステムをサポートするには(データベースを提供するシステムにも適用されますが、passwd
macOSには適用されません)
getent passwd |
awk -F : '{ printf "Name %s and uid %d\n", $1, $3 }'
このコードは書式設定を使用して、各行の最初と3番目の別々の列をテキスト文字列の一部としてawk
印刷します。:
printf