1 打印UID在30-40之间的用户名
awk -F : '{ for(i=30;i<=40;++i) if (i==$3) print $1,$3}' /etc/passwd
2 打印第5-10行,输出用户名和行号
awk -F : '{if(NR>=5&&NR<=10) print NR,$1}' /etc/passwd
3 打印奇数行
awk -F : '{if(NR%2!=0) print $0}' /etc/passwd | head -5
4 打印偶数行
awk -F : '{if(NR%2==0) print $0}' /etc/passwd | head -5
5 打印UID不等于GID的用户名
awk -F : '{if($1!=$5) print $1,$5}' /etc/passwd
6 打印没有指定shell的用户名
awk -F : '{if($7=="") print $1}' /etc/passwd
7 打印1-1000以内能被7整除的数和包含7的数
awk -f test7.awk
1 BEGIN{
for ( i=1;i<=1000; i++){
if(i%7==0) printf ("\033[1;33m%d\033[0m\t",i)
else if (i%10==7) printf ("%d\t",i)
else if ((i/10)%10==7) printf ("%d\t",i)
else if ((i/100)%10==7) printf ("%d\t",i)
}
print ""
}
BEGIN{
for( i=1; i<=1000;i++)
if (i~/7/ || i%7==0) printf i "\t"
}
本文通过多个实例展示了如何使用awk命令处理/etc/passwd文件,包括筛选特定范围的UID、打印特定行号及行内数据、筛选特殊条件的记录等,为读者提供了丰富的awk命令实践案例。
5万+

被折叠的 条评论
为什么被折叠?



