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。

转载于:https://www.cnblogs.com/hana-alice/p/9759104.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值