免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8456 | 回复: 8
打印 上一主题 下一主题

求教awk中getline的用法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-07 10:00 |只看该作者 |倒序浏览
谁有关于awk中getline的详细用法的中文说明吗?
小弟目前只会用一个格式: cmd | getline var
使用管道对var变量赋cmd命令执行的结果,这样就不必引用外部变量了。
感觉不错,请各位高手提供getline的其他用法好吗?
非常感谢!!!!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-07-07 11:24 |只看该作者

求教awk中getline的用法

简单地读取一条记录
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

论坛徽章:
0
3 [报告]
发表于 2003-07-07 12:11 |只看该作者

求教awk中getline的用法

好!
偶再贴些getline的用法,可惜没例子,所以偶郁闷中...

getlin在不同环境下设置的值:
-------------------------------------------------
形式                            设置
-------------------------------------------------
getline                        $0,NF,NR,FNR
getline var                  var,NR,FNR
getline<file                  $0,NF
getline var<file            var
cmd|getline                 $0,NF
cmd|getline var           var
------------------------------------------------

论坛徽章:
0
4 [报告]
发表于 2003-07-07 12:55 |只看该作者

求教awk中getline的用法

原帖由 "admirer" 发表:
简单地读取一条记录
awk的 getline语句用于简单地读取一条记录。如果用户有一个数据记录类似两个物理记录,那么getline将尤其有用。它完成一般字段的分离(设置字段变量$0 FNR NF NR)。如果成功则返回1,失败则返回..........
   
好东东,收藏~~~嘿嘿~

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-07-07 13:23 |只看该作者

求教awk中getline的用法

to anonimousboy
大家推荐你作斑竹,表个态吧!

论坛徽章:
0
6 [报告]
发表于 2003-07-07 13:30 |只看该作者

求教awk中getline的用法

原帖由 "admirer" 发表:
to anonimousboy
大家推荐你作斑竹,表个态吧!
   
俺的意思是等老版主回来表态,不想当了的话,俺就去申请当版主~~觉得这样对人家才算尊重~~嘿嘿~

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2003-07-07 14:23 |只看该作者

求教awk中getline的用法

原帖由 "anonimousboy" 发表:
   
俺的意思是等老版主回来表态,不想当了的话,俺就去申请当版主~~觉得这样对人家才算尊重~~嘿嘿~

这与他当不当没有关系,我们不能长期没有斑竹,再说其他板块都有好几个斑竹呢!只要你没有意见,申请一下,我们支持你!我想老斑竹是不会有意见的!

论坛徽章:
0
8 [报告]
发表于 2003-07-08 06:34 |只看该作者

求教awk中getline的用法

原帖由 "admirer" 发表:
简单地读取一条记录
awk的 getline语句用于简单地读取一条记录。如果用户有一个数据记录类似两个物理记录,那么getline将尤其有用。它完成一般字段的分离(设置字段变量$0 FNR NF NR)。如果成功则返回1,失败则返回..........
   

非常好呀,

建议 anonimousboy 领到印子后,盖一个

论坛徽章:
0
9 [报告]
发表于 2003-07-08 06:48 |只看该作者

求教awk中getline的用法

原帖由 "admirer" 发表:

这与他当不当没有关系,我们不能长期没有斑竹,再说其他板块都有好几个斑竹呢!只要你没有意见,申请一下,我们支持你!我想老斑竹是不会有意见的!


说的对。

anonimousboy,放心吧,valentine 应该会很高兴。
同时也盼望 valentine 能早日归来.....

原帖由 "valentine" 发表:
“处置”,俺还以为是什么坏事呢。
我是欢迎哪位朋友和我一起来维护shell版的,想必樊老大更是求贤若渴,直接给樊老大发短信或让我来推荐都可以。


http://www.chinaunix.net/forum/viewtopic.php?p=443404#443404


原帖由 "valentine" 发表:
太多的事情发生在我身上,导致论坛的工作近来做的太少了些,在这里向大家道歉。
现在俺暂时代理,以待贤者。

希望我能早日真正回到大家中来!


http://www.chinaunix.net/forum/viewtopic.php?p=392041#392041
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP