Awk 输入处理与输出打印全解析
1. getline 的使用与变体
在 Awk 编程中, getline 是一个非常重要的功能,用于读取额外的记录,其使用场景多样,不同的使用方式会带来不同的效果。
1.1 带有 @execute 的 getline
以下是一个示例代码:
{
if ($1 == "@execute") {
tmp = substr($0, 10) # Remove "@execute"
while ((tmp | getline) > 0)
print
close(tmp)
} else
print
}
这里使用 close() 函数是为了确保如果输入中出现两个相同的 @execute 行,命令会为每一行都执行一次。例如,给定如下输入:
foo
bar
baz
@execute who
bletch
程序可能会产生如下输出:
foo
bar
baz
arnold ttyv0 Jul 13 14:22
miriam ttyp0 Jul 13 14:23 (murphy:0)
bill ttyp1 Jul
超级会员免费看
订阅专栏 解锁全文
1116

被折叠的 条评论
为什么被折叠?



