【发布时间】:2013-02-10 10:29:14
【问题描述】:
我正在寻找一种外壳单行器,它将以下示例货币字符串 PHP10000 解析为 $245。我需要从字符串中解析数字,将其与预设的转换因子相乘,然后在结果中添加“$”前缀。
到目前为止,我所拥有的只有这个:
echo PHP10000 | sed -e 's/PHP//'
结果为@987654322@。
现在,我被困在如何对该结果进行乘法运算。
我在想awk 也可以解决这个问题,但我是 shell 命令的初学者。
更新:
我试过了:
echo PHP10000 | expr `sed -e 's/PHP//'` \* 2
并且乘法仅适用于整数。我不能使用浮点数,因为它给了我这个错误:expr: not a decimal number: '2.1'。
【问题讨论】:
-
我拒绝任何人向我解释这与数学有什么关系。至少删除那个标签。
-
根据目的,您可能需要比建议更多的小数位数,尽管您可能会在保留这样一个“友好”的乘数/除数时获得“幸运”。稍微改变一下,在 PHP 中运行 1000 个示例,将 PHP 值和 USD 值相加,将 PHP 总和转换为 USD 并比较两个 USD 值。如果您只是转换商店或目录或其他东西的“价格”,那么可以。如果您从事财务方面的工作,则需要做更多的工作。
-
@duffymo:我用数学标记它,因为我基本上想在 shell 上进行数学运算。
-
@BillWoodger:这一行的目的是在shell上处理文本文件,在文本中搜索货币,然后转换成目标货币。
-
这不是数学;只是“我不知道如何用 PHP 解析”。