sed命令替换一行

sed命令替换一行

有一个文件sample.txt。该文件的内容是

..some content...
  # bind-address = ":7086"
  # bind-address = ":8086"

我想取消注释端口 7086 的行并将端口也替换为 8888,以便最终修改的文件看起来像

..some content...
   bind-address = ":8088"
  # bind-address = ":8086"

我想用命令来做sed。那么确切的命令是什么?

答案1

正如评论中所确认的,该字符串始终包含# bind-address = ":7086".因此,要替换它,只需使用sed搜索并通过对字符串进行硬编码来替换选项。

sed -i 's/# bind-address = ":7086"/bind-address = ":8088"/' file2

答案2

尝试这个 ,

sed -i 's/#\(.*\)7086/\18088/g' file_content

这里之后#和之前的所有内容7086都被分组,然后整行将替换为\1(组 1 或说区域 1 )和您所需的端口 8088

答案3

sed '1,/#/ s/#/ /' filename > temp1

将第一次出现的模式替换为空白。

然后更改端口号

sed 's/7086/8086/' temp1 > filename

相关内容