AWK 是否可以在处理过程中调用外部程序 - 传递参数并返回信息 - 仅在外部程序执行完成后继续处理?
问问题
383 次
3 回答
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
。
于 2014-05-07T13:19:31.340 回答
0
是的,这是一个例子:
awk '
BEGIN {
"date +%Y" | getline
print "The year is "$0
}'
输出:
年份是 2014 年
于 2014-05-07T13:15:59.607 回答
0
该system
函数可以调用外部命令,但只返回退出代码。您必须重定向您正在调用的程序的输出,然后读入该文件。
retcode = system("command > file.out")
file="file.out";
while(( getline line < file ) > 0 ) {
print line
}
于 2014-05-07T13:18:51.267 回答