似乎我的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] 删除。
我来说两句