问答详情
源自:2-4 shell字符截取命令之awk命令(下)

awk执行顺序

awk在不加BEGIN的情况下 awk '{FS=":"}{printf $1 "\t" $3 "\n"}'  先执行哪个?

提问者:hcices 2016-04-09 16:15

个回答

  • 兰花和柿子打架
    2016-04-09 20:43:56
    已采纳

    由于awk的执行原理是先读取数据再判断条件然后执行动作,所以awk在不加BEGIN的情况下先读取第一行数据也就是“root:0:0:root:/root:/bin/bash”再执行{FS=":"}、{printf $1 "\t" $3 "\n"}这两个动作,而此时由于第一条数据已经读取因此{FS=":"}这一动作只对后两条数据起作用