【问题标题】:How to get system output in awk?如何在awk中获取系统输出?
【发布时间】:2012-04-23 13:01:44
【问题描述】:

我想将 printf 输出存储到如下数组中:

op[i] = system( "printf \"%d\\n\" \"" SQ substr($1,i,1) "\"" )

但是当我给他们回电话时,他们只是 0?!

你知道为什么吗!?

【问题讨论】:

  • system() 返回 0,因此这就是您将得到的。您必须使用流将实际输出作为字符串获取。另外, printf 是系统命令吗?如果你想使用 printf 的 C++ 函数,你不应该使用system()
  • awk 有它自己的 printf 函数或者你可以使用'string' printf,即ar[0]=sprintf(.....)
  • @Griffin: 有一个printf 命令有点像echo,因为它将数据回显到其标准输出,但受printf() 等格式字符串的控制(函数)。

标签: awk


【解决方案1】:

你想要

op[i] = sprintf("%d\n", SQ substr($1,i,1))

从外部命令捕获输出的方式:

cmd = "date"
cmd | getline output
close(cmd)

http://www.gnu.org/software/gawk/manual/html_node/Getline_002fVariable_002fPipe.html#Getline_002fVariable_002fPipe

【讨论】:

    猜你喜欢
    • 2014-12-26
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2012-08-10
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    相关资源
    最近更新 更多