使用 BASH 编辑文件以更改未知值

Edit a file using BASH to change unknown values

我正在尝试弄清楚如何使用简单 BASH

更改文件的某些部分

基本上我想从这里开始

之前:

parameter0.1=value
parameter0.2=value
parameter0.3=https://changeme/donotchangeme
parameter0.4=ABCD

parameter1.1=value
parameter1.2=value
parameter1.3=https://changeme/donotchangeme
parameter1.4=WXYZ

对此

之后:

parameter0.1=value
parameter0.2=value
parameter0.3=https://changed/donotchangeme
parameter0.4=QWERTY

parameter1.1=value
parameter1.2=value
parameter1.3=https://changed/donotchangeme
parameter1.4=QWERTY

但是,我不知道 "changeme"、"ABCD" 或 "WXYZ" 的实际值是多少。所以我无法进行查找和替换。

有什么想法吗?

假设您给定的输入存储在 input.txt 中,那么下面的 sed 命令应该可以满足您的要求。

cat input.txt | sed -e '/parameter.\.3=/s_=https://[^/]*_=https://changed_' -e '/parameter.\.4=/s_=.*$_=QWERTY_'

简而言之,不要搜索您要替换的文本(您不知道),而是搜索所述文本周围的文本并进行相应替换。