注册 登录
LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! 返回首页

panda的个人空间 http://bbs.linuxtone.org/?10721 [收藏] [复制] [分享] [RSS]

日志

awk中的getline

热度 1已有 1446 次阅读2011-10-12 22:10 |个人分类:linux@shell

简单地读取一条记录 
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<"filename"方式从一个给定的文件中输入数据,而不是从命令行所列内容输入数据。此时,getline将完成 一般字段分离(设置字段变量$0和NF)。如果文件不存在,返回-1,成功,返回1,返回0表示失败。用户可以从给定文件中读取数据到一个变量中,也可以 用stdin(标准输入设备)或一个包含这个文件名的变量代替filename。值得注意的是当使用这种方式时不修改FNR和NR。 
另一种使用getline语句的方法是从UNIX命令接受输入,例如下面的例子: 

例:示例从UNIX命令接受输入 
{while("who -u"|getline) 

#process each line from the who command 



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

"command" | getline variable 

路过
1

鸡蛋

鲜花

握手

雷人

刚表态过的朋友 (1 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2021-2-26 05:44 , Processed in 0.010715 second(s), 9 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部