我的文件中有一行
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
有什么问题?
答案 0 :(得分:1)
您应该使用双引号("
)而不是单引号('
)。
但我认为你可以缩短表达方式:
L=5
sed "s/L = [0-9]*/L = $L/" file
如果是您想要的输出,请添加-i
标志进行就地编辑。