Sed:选择价格的第一部分

杰里米

似乎我的sed命令不起作用。我正在尝试以 2.99 美元的价格选择 2。但是,无论我如何输入regex,它只会给出 0.99
我想要选择不是美元符号的所有内容(每个数字)。
有什么建议么?

echo "$2.99" | sed -e 's:^\([^\\$]*\).:the price is \1.:'

我是

问题不在于您,sed在于echo. 请注意,$2在双引号下展开时是位置参数二,在这种情况下不展开任何内容。所以本质上你在做

echo ".99" | something

正确的方法是

echo '$2.99' | sed -E 's/\$([[:digit:]]*)\..*$/The price is Dollar \1/'
#Note that $2 inside single quotes is literal $2

输出

The price is Dollar 2

注:\1在替代部分扩展到括号中匹配的部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章