linux 中 awk语句 getline 和 enxt的区别
001、
[root@PC1 test]# cat -A a ## 测试文本 1 2$ 3 4$ 5 6$ 7 8$ [root@PC1 test]# awk '{print "$1="$1; getline; print "$2="$2}' a ## getline 会读入下一行,并对下一行按照awk内置变量规则赋值 $1=1 $2=4 $1=5 $2=8 [root@PC1 test]# awk '{print "$1="$1; next; print "$2="$2}' a ## next就是结束当前行的处理,相当于结束最外层的行循环 $1=1 $1=3 $1=5 $1=7
。
[root@PC1 test]# cat -A b 1 2$ 3 4$ 5 6$ [root@PC1 test]# awk '{print "$1="$1;getline;print "$2="$2}' b ## 当程序进入第三行时,首先输出$1 = 5, 此时getline读取下一行,但是没有第四行,此时,$2变量仍然是第三行的$2字段 $1=1 $2=4 $1=5 $2=6 [root@PC1 test]# awk '{print "$1="$1;next;print "$2="$2}' b ## next结束外层循环 $1=1 $1=3 $1=5
source:
01、https://blog.csdn.net/weixin_34218890/article/details/93042607