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。

  • 相关阅读:
    约数个数 和 约数之和
    二分模板
    新生赛补题
    codefores刷题心得3 思维+dp(特别好玩)
    二叉树的遍历及例题
    团队作业七——团队作业分配
    WarPlane——游戏设计文档
    团队作业(五)
    团队作业(四)
    团队项目方案分析
  • 原文地址:https://www.cnblogs.com/hana-alice/p/9759104.html
Copyright © 2011-2022 走看看