AWK的行循环控制

1.控制函数:next,getline,exit。

next:      该行的action运行到next就停止,读取下一行。

getline:1.没有"<"或“|”的情况下,读取下一行,如果没有把下一行传递给变量(形式:getline tmp),则会改变NR,FNR,$0这些内置变量。

              2.有“<”或“|”的情况下,读取另外的文件,如果没有把读取的文件传递给变量(形式:getline tmp<"data.txt"),则会改变NR,FNR,$0这些内置变量。

exit:     执行到该命令后,退出awk。

2.案例

next:

getline:

没有tmp

有tmp

 注解:第一个例子中,没有将getline 传递给其他变量,这时候的$0,FNR,NR是属于下一行的。

第二个例子中,将getline传递给tmp变量,这时候的$0还是属于当前行,但是已经读取了下一行,所以NR,FNR属于下一行的。

“<”:没有tmp

注释:第一个$0属于test2,第二个$0属于test

“<”:有tmp

 注释:第一个$0属于test2,第二个$0也属于test2,这是由于test的内容已经由b来掌握。

eixt:

原文地址:https://www.cnblogs.com/timeisbiggestboss/p/8252459.html