【问题标题】:How to store output of a awk script command into a variable? [duplicate]如何将 awk 脚本命令的输出存储到变量中? [复制]
【发布时间】:2016-11-02 13:25:05
【问题描述】:

我有一个 awk 脚本,testscript.script,带有命令:

$5 > 0 {print $1}

哪个输出

 Lebron
 Kobe
 James
 Tony

如何将此命令存储到变量 var 中,这样当我在代码中的任何位置说 print var 时,上面的输出都会打印出来?

【问题讨论】:

    标签: bash awk scripting


    【解决方案1】:

    你需要命令替换,$():

    var=$(awk ...)
    

    awk 命令的 STDOUT 将保存在变量 var 中。

    现在,你可以这样做了:

    echo "$var"
    

    获取输出。

    【讨论】:

    • 将此命令替换方法扩展到命令var = $($3 + $4 + $5 > 500 {print $1 $2 | "sort"}) 会产生语法错误。这里出了什么问题?通常,会显示此命令的标准输出。
    • @KevinMoy =周围不能有空格,你需要:var=$(your_command_here)
    • 非常奇怪......无论命令多么简单(我什至尝试过var=$(print "hello world") 并且仍然失败),以及它被放置在 awk 脚本中的哪个位置,我似乎都会遇到语法错误。这可能是由于本身有一个 awk 脚本吗?我使用awk -f testscript.script inputfile 调用脚本
    • @KevinMoy 不是print,使用echovar=$(echo "hello world")
    • 如果 print 语句与 if 语句结合会怎样?命令替换将如何变化?即将if(x > 5) {print "Hello World"} 存储到var 变量中?
    猜你喜欢
    • 2012-04-03
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 2014-10-21
    • 2018-11-06
    • 1970-01-01
    相关资源
    最近更新 更多