似乎我的sed
命令不起作用。我正在尝试选择2.99美元的2美元。但是,无论我如何键入regex
,它都只会给出.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
扩展到括号内的匹配部分。