首页 > 解决方案 > awk -v,只打印整个变量的一个单词

问题描述

我在下面有一堆变量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 

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

标签: variablesawk

解决方案


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

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

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

推荐阅读