有一个文件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