awk可以进行基数和偶数的输出,下面介绍两种方法实现。
seq 10 | awk ‘{if($0%2==0)print $0}’ ------>进行偶数的输出
seq 10 | awk ‘{if($0%2==1)print $0}’ ------>进行奇数的输出
上面实现的方式是比较传统的方式,利用和2进行取余的方法进行的输出。
seq 10 | awk ‘i=!i’ ------->进行奇数的输出
seq 10 | awk ‘{i=!i;if(!i)print $0}’ ------->进行偶数的输出
i=!i为什么就输出奇数了呢,首先如果变量没进行复制的话如果是数字的话那么开始会赋值为0,如果是字符串的话,那么会被赋值为空字符串。首先第一次的时候,i=0,因为i开始没有进行赋值。!i的话就是非0,非0就是1,如果是1的那么就会将本行的数值进行输出。第二行的时候,i的值是1,取反的话就又变成了0,所以不会进行输出。所以由此实现了基数和偶数的输出。