0

AWK 是否可以在处理过程中调用外部程序 - 传递参数并返回信息 - 仅在外部程序执行完成后继续处理?

4

3 回答 3

2

是的,有两种方法可以调用外部命令,system()getline. 您可以使用 获取返回的文本getlinesystem()将为您提供外部 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 回答