Variables awk-v,只打印整个变量的一个字

Variables awk-v,只打印整个变量的一个字,variables,awk,Variables,Awk,我在容器[x]下有一组变量,其中x是一个未定义的数字,每个变量都由一个单词和一个数字组成,格式为优雅的\u kalam:5.30% 我需要做的是只取每个变量的第一个百分比(在本例中为“5”)。 我最近一直在学习awk,通过“-v和var=”发现我可以使用变量而不是文件,问题是,如何使用awk,使用变量而不是文件来获取每个变量的数量 我带来的是 MEDIDOR_ACTUAL=$(awk -v var="${container[$x]}" 'BEGIN {print var}') echo $MED

我在
容器[x]
下有一组变量,其中x是一个未定义的数字,每个变量都由一个单词和一个数字组成,格式为
优雅的\u kalam:5.30%

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

我带来的是

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

但是很明显,我打印的是整行,而不是我想要的。

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

awk '{print int($2+0)}' <<< "${container[$x]}"
  • +0
    $2
    5.30%
    转换为一个数字
    5.3
  • int
    函数将其转换为整数,即
    5

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