如何从单位中获取数字?

如何从单位中获取数字?

默认输出units似乎有点冗长:

$ units "2 fortnight" seconds
    * 2419200
    / 4.1335979e-07

假设我只想要数字,这样我就可以做类似的事情sleep $(units "2 fortnight" seconds)。是否有units我缺少的格式参数?或者是否有一些简单的方法可以将其通过管道传输到某些东西并只获取数字?我可以看到这$ units "2 fortnight" seconds | head -n 1至少会消除这个因素,但我仍然有额外的空格和*

答案1

GNU Units version 2.19

$ units --one-line  --compact '2 fortnight' seconds
2419200

BSD 实现units没有--one-line --compact,但你可以使用 awk:

$ units '2 fortnight' seconds  | awk 'NR == 1 {print $2}'
2419200

答案2

虽然其他答案解决了这个问题,但如果您碰巧有一个非常旧的版本,units您也可以这样做:

$ units "2 fortnight" sec | head -n 1 | grep -E "\d+" --only-matching
2419200

相关内容