Chinaunix首页 | 论坛 | 博客
  • 博客访问: 239500
  • 博文数量: 65
  • 博客积分: 1430
  • 博客等级: 中尉
  • 技术积分: 700
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-27 00:30
文章分类
文章存档

2011年(65)

分类: LINUX

2011-07-24 23:26:33

#cat /etc/passwd | awk '{FS=":"} $3<10 {print $1 "\t" $3}'
root:x:0:0:root:/root:/bin/bash 
 bin     1
daemon 2
adm 3
lp 4
sync 5
shutdown 6
halt 7
mail 8
news 9
解析:第一行没有正确显示出来,这是因为我们读入第一行的时候,那些变量$1,$2等默认还是以空格键作为分隔的,所以虽然定义了FS=“:”,却只能再第二行后才开始生效。我们可以使用BEGIN关键词预先设置awk的变量。
#cat /etc/passwd | awk 'BEGIN {FS=":"} $3<10 {print $1 "\t" $3}'
root 0
bin 1
daemon 2
adm 3
lp 4
sync 5
shutdown 6
halt 7
mail 8
news 9
解析:使用BEGIN预先设置awk的内置变量FS后,输出了正确的结果。
阅读(2067) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~