variables - 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
但显然我打印的是整行而不是我想要的。
解决方案
您不需要将变量传递给awk
. 只需使用:
awk '{print int($2+0)}' <<< "${container[$x]}"
5
+0
将$2
ie转换5.30%
为数字5.3
int
函数会将其转换为整数,即5
.
推荐阅读
- ruby-on-rails - 添加 best_in_place 时未定义的方法“service_path”
- python - ValueError: int() 以 10 为底的无效文字:'0.50'(我无法理解关于此的其他帖子)
- python - plt.show() 命令后继续程序而不关闭所有窗口
- java - Spring动态注入泛型
- python - pandas.read_table 的阅读问题
- deep-learning - 训练时遇到的一个奇怪问题
- kotlin - 迭代数据类列表未按预期工作
- sql-server - 如何在 SQL Server 中解析 SOAP XML 并显示为表数据
- python - 如下应用 SLIC 后如何检测云的百分比?
- pdf.js - PDF.js:使用页面导航时如何停止 PDF 变成 180 度