匹配字符串,后跟任何字符,后跟浮点数

时间:2016-10-22 15:43:24

标签: string sed match

我正在尝试匹配bla = 0.05并将数字替换为文件中的1234。预期输出为bla = 1234

我试过的代码:

sed -i '' "s/\(bla\)\(.*\)\([-+]?[0-9]*\.?[0-9]*\)/#\1\21234/g" foo

此外,为什么我有时需要'',有时不会拨打sed

1 个答案:

答案 0 :(得分:1)

$ echo 'bla = 0.05' > foo
$ cat foo 
bla = 0.05
$ sed 's/\(bla[^0-9.+-]*\)\([-+]\?[0-9]*\.\?[0-9]*\)/\11234/g' foo
bla = 1234


如果扩展正则表达式选项可用,则-E-r

$ sed -E 's/(bla[^0-9.+-]*)([-+]?[0-9]*\.?[0-9]*)/\11234/g' foo
bla = 1234


有关在不同-i版本

之间使用sed标记的要求,请参阅sed in-place flag