AWK是否有可能在处理期间调用外部程序 - 传递参数并获取信息 - 仅在外部程序执行完成后继续处理?
答案 0 :(得分:2)
是的,有两种方法可以调用外部命令system()
和getline
。您可以使用getline
获取返回的文本,system()
将为您提供外部cmd的返回代码。看这个例子:
kent$ awk 'BEGIN{"wc -l /etc/passwd"|getline var; print var}'
20 /etc/passwd
此示例调用外部cmd wc -l /etc/passwd
,并将返回值分配给awk变量:var
。
答案 1 :(得分:0)
是的,这是一个例子:
awk '
BEGIN {
"date +%Y" | getline
print "The year is "$0
}'
输出:
这一年是2014年
答案 2 :(得分:0)
system
函数可以调用外部命令,但只返回退出代码。您必须重定向您正在调用的程序的输出,然后读入该文件。
retcode = system("command > file.out")
file="file.out";
while(( getline line < file ) > 0 ) {
print line
}