1.只处理用户ID为奇数的行,并打印用户名和uid
awk -F: '{if($3%2==1)print $1,$3}' /etc/passwd
2.显示系统的普通用户,并打印用户名和ID
awk -F: '$3>=500{print $1,$3}' /etc/passwd
3.显示用户shell是/bin/bash的用户,并打印用户名
awk -F: '{if($NF=="/bin/bash")print $1}' /etc/passwd
4.统计普通用户个数
awk -F: '$3>=500{a++}END{print a}' /etc/passwd
5.统计文本总行数
awk 'END{print NR}' /etc/passwd
6.显示文件名
awk 'NR==1{print FILENAME}' /etc/passwd
7.显示UID为1000用户的相关信息
awk -F: '$3==1000{print}' /etc/passwd
8.利用awk模拟tail -1的效果
[root@sotneC6 ~]# sed -n '84p' /etc/passwd
apache:x:48:48:Apache:/var/www:/sbin/nologin
[root@sotneC6 ~]# awk 'NR==84{print}' /etc/passwd
apache:x:48:48:Apache:/var/www:/sbin/nologin
除了最后一个暂时想不到能不能用一条命令执行外,其他都不难搞定
附:Centos6中,系统用户uid范围 1~499;大于等于500为普通用户。而Centos7中,系统用户uid范围1 ~999;大于等于1000为普通用户。
补充:
9.有两个文件t1和t2,合并两个文件内容保存到t3
t1文件内容:
lihua
Taylor
jack
mary
t2文件内容:
34
32
36
40
合并为t3:
lihua:34
Taylor:32
jack:36
mary:40
awk 'BEGIN{OFS=":"}NR==FNR{a[NR]=$0}NR>FNR{print a[FNR],$0}' t1 t2 > t3