1

我从 AWK 脚本调用的系统命令的输出显示在终端上。我不希望 shell 显示系统命令的输出,而是希望将此输出读入脚本的变量(系统命令的输出是一个单词字符串“yes”或“no”) . 然后需要将此变量与脚本中的字符串(如果它的“是”或“否”)进行比较,并且命令的输出最终需要保存到一个新文件中。我如何在 AWK 中做到这一点?

4

1 回答 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 回答