awk -v,只打印变量中的一个单词

3

我有一系列基于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
@Marcin,它仍然无法工作,现在我得到了不同的错误,但问题本身是误导性的,这就是为什么我删除它的原因。 - Juan.
1个回答

1

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接