linux getline函数用法,[转]awk的getline函数用法

awk getline关键词:

getline函数说明:

QUOTE:

A.getline从整体上来说,应这么理解它的用法:

当其左右无重定向符 | 或 < 时,getline作用于当前文件,读入当前文件的第一行给其后跟的变量

var 或$0(无变量);应该注意到,由于awk在处理getline之前已经读入了一行,所以getline得到

的返回结果是隔行的。

当其左右有重定向符 | 或 < 时,getline则作用于定向输入文件,由于该文件是刚打开,并没有被

awk读入一行,只是getline读入,那么getline返回的是该文件的第一行,而不是隔行。

B.getline用法大致可分为三大类(每大类又分两小类),即总共有6种用法。代码如下:

QUOTE:

nawk ‘BEGIN{“cat data.txt”|getline d; print d}’ data2.txt

nawk ‘BEGIN{“cat data.txt”|getline; print $0}’ data2.txt

nawk ‘BEGIN{getline d < “data.txt”; print d}’ data2.txt

nawk ‘BEGIN{getline < “data.txt”; print $0}’ data2.txt

以上四行代码均实现“只打印data.txt文件的第一行”(若打印全部行,用循环)

eg. nawk ‘BEGIN{FS=”:”;while(getline0){print $1}}’ data.txt

QUOTE:

nawk ‘{getline d; print d”#”$3}’ data.txt

awk首先读入第一行,接着处理getline函数,然后把下一行指定给变量d,再先打印d,由于d后面有换行符,所以后面紧跟的#会覆盖d,后面的$3同样也会覆盖d。

QUOTE:

nawk ‘{getline; print $0”#”$3}’ data.txt

awk首先读入第一行接着处理getline函数,然后把下一行指定给$0,现在的$0已经是下一行内容,后面的#和$3(从$0中取)会覆盖$0的内容。

简单地读取一条记录

awk的 getline语句用于简单地读取一条记录。如果用户有一个数据记录类似两个物理记录,那么getline将尤其有用。它完成一般字段的分离(设置字段变量$0 FNR NF NR)。如果成功则返回1,失败则返回0(到达文件尾)。如果需简单地读取一个文件,则可以编写以下代码:

例:示例getline的使用

{while(getline==1)

{

#process the inputted fields

}

}

也可以使getline保存输入数据在一个字段中,而不是通过使用getline variable的形式处理一般字段。当使用这种方式时,NF被置成0,FNR和NR被增值。

用户也可以使用getline另一种使用getline语句的方法是从UNIX命令接受输入,例如下面的例子:

例:示例从UNIX命令接受输入

{while("who -u"|getline)

{

#process each line from the who command

}

}

当然,也可以使用如下形式:

"command" | getline variable

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值