首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

问个AWK的有关问题

2013-04-21 
问个AWK的问题执行seq 10 | awk i!i为什么会输出13579[解决办法]首先,你要知道 awk 1 表示的是输出,a

问个AWK的问题
执行seq 10 | awk 'i=!i'
为什么会输出
1
3
5
7
9

[解决办法]
首先,你要知道 awk '1' 表示的是输出,awk '0' 表示的是不输出
其次,未定义的变量默认值为 0
再次,awk 的脚本每行执行一次

现在看 seq 10 的输出是从 1 到 10,十行。第一行的时候,执行 i=!i,这时候 i=0,!i 就是 1,所以输出 1,第二行,i=1,!i 就是 0,不输出 2,第三行,同第一行,余下略。
[解决办法]
缺省action,默认的行为就是print,然后1为true,0为false,同时变量初值为0,所以就是打印基数行了。

热点排行