zoukankan      html  css  js  c++  java
  • awk的getline命令

    原文出处:生活费的博客,http://www.cnblogs.com/276815076/archive/2011/12/05/2276625.html#undefined

     两种情况:getline左右没有重定向符|或<

    1.当getline左右没有重定向符|或<时,getline读去当前文件的第一行并将数据保存到变量中,如果没有变量,则数据保存到$0中;

    由于awk在处理getline之前已经读入了一行,所以getline得到的返回结果是隔行的。
        

    2.当getline左右有重定向符|或<时,getline作用于定向输入文件,由于该文件是刚打开,awk并没有读入一行数据,而getline读入了一行数据,那么getline返回的是该文件的第一行,而不是隔行。


    root@myfreelinux pub]# awk ‘BEGIN{“cat kecheng.dat”|getline var;print var;}’
    [root@myfreelinux pub]# awk ‘BEGIN{“cat kecheng.dat”|getline;print $0;}’
    [root@myfreelinux pub]# awk ‘BEGIN{getline var<”kecheng.dat”;print var;}’
    [root@myfreelinux pub]# awk ‘BEGIN{getline <”kecheng.dat”;print $0;}’
        以上四行awk程序都是将kecheng.dat的第一行数据打印出来,结果是:zhangsan math english chinese

    [root@myfreelinux pub]# awk ‘{getline var;print $0;print var;}’ kecheng.dat
    zhangsan math english chinese
    lisi     computer chinese english
    wangwu dianzi chinese math
    zhaoliu huanjing english chinese
    [root@myfreelinux pub]# awk ‘{getline var;print var;}’ kecheng.dat
    lisi     computer chinese english
    zhaoliu huanjing english chinese
        以上两个例子可以看出来,awk和getline是分别取数据文件中的行数据,而且是awk首先从数据文件中取数据,后getline取下一行数据。

    getlin在不同环境下影响到awk中的值的对应关系如下图:
    ————————————————-
    形式                            设置
    ————————————————-
    getline                        $0,NF,NR,FNR
    getline var                  var,NR,FNR
    getline<file                  $0,$1…$NF,NF
    getline var<file            var
    cmd|getline                 $0,NF
    cmd|getline var           var

    拒绝低效率勤奋,保持高效思考
  • 相关阅读:
    公用表表达式(CTE)的递归调用
    c# 如何让tooltip显示文字换行
    实战 SQL Server 2008 数据库误删除数据的恢复
    SQL SERVER数据库中 是否可以对视图进行修改删除
    asp.net中实现文件批量上传
    sql server 2008学习2 文件和文件组
    sql server 2008学习3 表组织和索引组织
    sql server 2008学习4 设计索引的建议
    sql server 2008学习10 存储过程
    .net 调用 sql server 自定义函数,并输出返回值
  • 原文地址:https://www.cnblogs.com/timeisbiggestboss/p/7454048.html
Copyright © 2011-2022 走看看