#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后,输出了正确的结果。
阅读(2055) | 评论(0) | 转发(0) |