getline

精通awk系列(12):awk getline用法详解

白昼怎懂夜的黑 提交于 2019-11-25 16:50:03
回到: Linux系列文章 Shell系列文章 Awk系列文章 getline用法详解 除了可以从标准输入或非选项型参数所指定的文件中读取数据,还可以使用getline从其它各种渠道获取需要处理的数据,它的用法有很多种。 getline的返回值: 如果可以读取到数据,返回1 如果遇到了EOF,返回0 如果遇到了错误,返回负数。如-1表示文件无法打开,-2表示IO操作需要重试(retry)。在遇到错误的同时,还会设置 ERRNO 变量来描述错误 为了健壮性,getline时强烈建议进行判断。例如: 上面的getline的括号尽量加上,因为 getline < 0 表示的是输入重定向,而不是和数值0进行小于号的比较。 无参数的getline getline无参数时,表示从当前正在处理的文件中立即读取下一条记录保存到 $0 中,并进行字段分割,然后 继续执行后续代码逻辑 。 此时的getline会设置NF、RT、NR、FNR、$0和$N。 next也可以读取下一行。 getline:读取下一行之后,继续执行getline后面的代码 next:读取下一行,立即回头awk循环的头部,不会再执行next后面的代码 它们之间的区别用伪代码描述,类似于: # next exec 9<> filename while read -u 9 line;do ...code... continue #