SED:选择价格的第一部分



似乎我的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扩展到括号内的匹配部分。

最新更新