gpt4 book ai didi

awk - 如何在 AWK 中将 getline 与连接在一起的命令一起使用

转载 作者:行者123 更新时间:2023-12-05 01:12:42 24 4
gpt4 key购买 nike

这让我发疯了。我要做的就是从 awk 向终端传递一个命令,其中的命令是一个由其他变量连接在一起的字符串。

awk 的文档说类似

"echo" $1 | getline var

应该将 $1 的值放入 var。但这种情况并非如此。我在这里想念什么?

我应该补充一点,我实际上有一个循环

for ( i = 1; i <=NF ; i=i+1 )
{
"echo" $i | getline var
printf var " "
}

printf "\n"

对于像输入文件这样的

 0 2
1 2

输出

 0 0
0 0

什么鬼。

最佳答案

好吧,事实证明这不是错误。

getline 会打开一个新文件,根据您的系统设置,每个程序只能打开 X 个文件。一旦你最大化打开的文件,getline 就不能打开任何新的 fd。解决方案是您必须调用

for ( i = 1; i <=NF ; i=i+1 )
{
command="echo" $i
command | getline var
close(command)
printf var " "

}

printf "\n"

当然这是一个微妙的点,文档中应该有巨大的警告标志!无论如何,我很高兴我解决了它。

关于awk - 如何在 AWK 中将 getline 与连接在一起的命令一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2210078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com