用sed替换文本

时间:2014-10-27 15:06:41

标签: shell replace sed

我的文件中有一行

    integer, parameter ::  L = 2   !Size of the system

数字2可以是任何整数。我想使用sed找到这一行,并将该数字的值替换为另一行。

我试过了:

$ L=5
$ sed -i '/L = /c\integer, parameter ::  L = $L   !Size of the system' moduleselfcons.f90

但在我最后修改过的文件中:

integer, parameter ::  L = $   !Size of the system

而不是:

integer, parameter ::  L = 5   !Size of the system

有什么问题?

1 个答案:

答案 0 :(得分:1)

您应该使用双引号(")而不是单引号(')。

但我认为你可以缩短表达方式:

L=5
sed "s/L = [0-9]*/L = $L/" file

如果是您想要的输出,请添加-i标志进行就地编辑。