【问题标题】:awk -v, print only a word of the whole variableawk -v,只打印整个变量的一个单词
【发布时间】:2020-04-06 06:51:49
【问题描述】:

我在container[x] 下有一堆变量,其中 x 是一个未定义的数字,每个变量都由一个单词和格式为 elegant_kalam: 5.30% 的数字组成。

我需要做的是只取每个变量的第一个百分比数字(在本例中为“5”)。 我最近一直在学习 awk,并且通过“-v 和 var=”发现我可以使用变量而不是文件,问题是,我如何使用 awk 获取每个变量的数量,使用变量而不是文件

我带来的是

MEDIDOR_ACTUAL=$(awk -v var="${container[$x]}" 'BEGIN {print var}')
echo $MEDIDOR_ACTUAL 

但显然我打印的是整行而不是我想要的。

【问题讨论】:

  • 我认为没有理由删除问题。但无论如何,希望它现在可以工作。
  • @Marcin 它仍然不起作用,现在我得到了一个不同的错误,但问题本身具有误导性,所以这就是我删除它的原因

标签: variables awk


【解决方案1】:

您无需将变量传递给awk。只需使用:

awk '{print int($2+0)}' <<< "${container[$x]}"

5
  • +0 会将 $25.30% 转换为数字 5.3
  • int 函数会将其转换为整数,即5

【讨论】:

    猜你喜欢
    • 2014-04-04
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 2021-09-29
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多