【问题标题】:Replacing text with sed用 sed 替换文本
【发布时间】:2014-12-22 19:26:31
【问题描述】:

我的文件中有这样一行

    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

有什么问题?

【问题讨论】:

标签: shell replace sed


【解决方案1】:

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

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

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

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

【讨论】:

  • @user3368447 ! 必须被转义尝试使用\! 和双引号。
猜你喜欢
  • 2011-11-25
  • 2022-10-21
  • 2012-10-14
  • 2020-02-27
  • 2020-01-24
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多