在处理过程中,AWK能否调用外部程序?
AWK是否可以在处理过程中调用外部程序(传递参数并获取返回的信息),但只能在外部程序执行完成后继续处理?是的,下面是一个示例:在处理过程中,AWK能否调用外部程序?,awk,gawk,nawk,Awk,Gawk,Nawk,AWK是否可以在处理过程中调用外部程序(传递参数并获取返回的信息),但只能在外部程序执行完成后继续处理?是的,下面是一个示例: awk ' BEGIN { "date +%Y" | getline print "The year is "$0 }' 输出: 今年是2014年 system函数可以调用外部命令,但只返回退出代码。您必须重定向正在调用的程序的输出,然后读取该文件 retcode = system("command > file.out") file="file.out
awk '
BEGIN {
"date +%Y" | getline
print "The year is "$0
}'
输出:
今年是2014年
system
函数可以调用外部命令,但只返回退出代码。您必须重定向正在调用的程序的输出,然后读取该文件
retcode = system("command > file.out")
file="file.out";
while(( getline line < file ) > 0 ) {
print line
}
retcode=system(“命令>文件.out”)
file=“file.out”;
而((getline0){
打印行
}
是的,有两种方法可以调用外部命令,system()
和getline
。您可以使用getline
获取返回的文本,system()
将为您提供外部cmd的返回代码。请参见此示例:
kent$ awk 'BEGIN{"wc -l /etc/passwd"|getline var; print var}'
20 /etc/passwd
此示例调用外部cmdwc-l/etc/passwd
,并将返回值赋给awk变量:var