使用 sed 查找并替换特殊字符后的字符串

使用 sed 查找并替换特殊字符后的字符串

我有一个包含具有唯一参数的 URL 的文件,其中一些 URL 具有多个参数。我正在尝试替换所有字符=别的东西。

示例网址file-containing-urls.txt

https://somewebsite.com/some/path/?parameter=value&another=somethingelse

命令示例sed

sed -r '/^\=/!s/=.*$/=somevalue/g' file-containing-urls.txt

虽然这有效,但它只是替换第一个参数,而不是其他参数。我想全部an 后面的字符=为特定字符串。这是我的结果:

https://somewebsite.com/somepath/?param=mystring  --> Works
https://somewebsite.com/new/path/?param1=mystring&param2=removed  --> Only works for param1

第二个例子,我希望我的字符串也转移到param2,但看起来sed只是替换第一个值并忽略其余值。所有其他参数都将从视图中删除。我以为 a/g可以解决这个问题,但我总是得到相同的结果。谢谢你!

答案1

$ sed 's/=[^=&]*/=somevalue/g' file
https://somewebsite.com/some/path/?parameter=somevalue&another=somevalue

相关内容