zoukankan      html  css  js  c++  java
  • awk中的getline函数

    getline

    getline函数得到下一行可能的返回值为:

    1 如果能够读取一行。
    0 如果到了文件末尾。
    -1 如果遇到错误。

    从文件中读取
    getline函数除了能读取正常的输入流外,还可以从文件或管道中读取。
    while((getline<"filepath")>0)
    print

    将输入赋给一个变量
    读取下一行并赋值给变量input:
    getline input

    从管道读取输入
    执行一个命令并将结果用管道输送到getline。
    "who am i"|getline
    当一个命令的输出结果被用管道输送给getline且包含多个行时,必须创建一个循环来执行getline。
    while("who"|getline)
    who_out[++i]=$0

    获取用户标准输入

    1.getline<"-"

    2.getline<"/dev/tty"

    例子:

    awk 'BEGIN{printf "Enter your name:";getline<"-";print}'

    三个$1

    #!/bin/bash
    filename:awk_whoami.sh
    awk '
    BEGIN{"who am i"|getline
    name=$1
    FS=":"
    }
    name ~ $1{print $5}
    ' $1

    第一个$1:getline读取下一行将其赋给$0,故$1指新输入行的$1。
    第二个$1:指第三个$1中的且与name匹配的某一行的$1。
    第三个$1:指脚本后的参数,如./awk_whoami.sh /etc/passwd,故此$1指/etc/passwd。

  • 相关阅读:
    Struts2
    HIbernate缓存
    spring的静态代理和动态代理
    JVM与垃圾回收机制(GC)和类的生命周期
    java开发设计六大基本原则
    数据表链表结构
    HashMap的底层实现
    string与位运算
    log4j和logback
    C#深入类的方法
  • 原文地址:https://www.cnblogs.com/hana-alice/p/9759104.html
Copyright © 2011-2022 走看看