【问题标题】:Shell: Robust way to remove trailing decimal point and zero in case there is a zeroShell:删除尾随小数点和零的稳健方法,以防出现零
【发布时间】:2019-01-01 10:44:41
【问题描述】:

在 bash 脚本中,我有一个(两位)数字,带小数点和一位数字。

如果小数点分隔符后有一个零,我想修剪分隔符和零。

对于

foo=26.5

..应该没有修剪。但在这种情况下:

foo=26.0 

我想要的输出是:

foo=26

tr 是正确的选择吗?

我尝试使用 --delete .0 选项,但它只是删除了两个角色的所有外观。

谢谢!

【问题讨论】:

  • 使用 bash:echo "${foo//.0/}"?
  • @Cyrus 8.04 最终成为 84

标签: bash shell trim tr


【解决方案1】:

不只是bash

foo=$(echo "$foo" | sed 's/\.0$//')

【讨论】:

  • 为什么不简单地 foo="${foo%.*}"
  • @ctac_:这可能仅适用于bash,并删除点之后的所有内容。我建议将* 替换为0
  • 我认为所有 POSIX shell 都可以。在我看来,OP并没有告诉所有人。从26.5开始,他要26吗?
猜你喜欢
  • 1970-01-01
  • 2014-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
  • 2012-01-26
相关资源
最近更新 更多