用sed替换字符串只是连接而不是覆盖它

时间:2016-11-02 13:50:31

标签: string bash sed caffe

我有一条看起来像下面的一行:

input_param { shape: dim: 50 dim: 3 dim: 227 dim: 277} }

我想用sed命令覆盖50,例如用" 1":

sed -i -e 's/dim: */dim: 1/' filename.txt

然而,之后的界限如下:

input_param { shape: dim: 150 dim: 3 dim: 227 dim: 277} }

谁能告诉我哪里出错了?

1 个答案:

答案 0 :(得分:1)

使用此5 * 4 * 3 * 2 * 1

sed

您使用sed 's/dim: [0-9]\+/dim: 1/' file 表示匹配零个或多个前一个字符。所以,它之后没有检查数字。我使用*表示一个或多个前面的字符。