我从 AWK 脚本调用的系统命令的输出显示在终端上。我不希望 shell 显示系统命令的输出,而是希望将此输出读入脚本的变量(系统命令的输出是一个单词字符串“yes”或“no”) . 然后需要将此变量与脚本中的字符串(如果它的“是”或“否”)进行比较,并且命令的输出最终需要保存到一个新文件中。我如何在 AWK 中做到这一点?
问问题
7057 次
1 回答
2
"command" | getline var
这将执行command
并将输出,一次一行,放入变量var
中。例如
$ awk 'BEGIN{while("seq 3" | getline x) print "output: " x}'
output: 1
output: 2
output: 3
它也会在通话之间持续存在:
$ seq 3 | awk '{"seq 4 7" | getline x; print x}'
4
5
6
注意 7 没有打印,因为没有第四行输入。
这里的帖子显示 using |&
,它没有出现在手册页中,我不确定有什么区别。我认为它也可能捕获 stderr,但在我的测试中并没有这样做。
于 2012-08-14T12:32:46.393 回答