Som*_*ter 28 linux bash replace sed
我一直在网上寻找这个答案,似乎无法找到它.
我有一个包含以下内容的配置文件:
VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE5
VAR6=VALUE6
Run Code Online (Sandbox Code Playgroud)
我想将VAR5的值从VALUE5更改为VALUE10.不幸的是,我不知道VALUE5的价值所以我无法搜索它.所以基本上我需要使用sed(或其他)将VAR5的值替换为我想要替换它的任何值.
anu*_*ava 44
你可以尝试这个sed:
sed -i.bak 's/^\(VAR5=\).*/\1VALUE10/' file
Run Code Online (Sandbox Code Playgroud)
它给:
VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE10
VAR6=VALUE6
Run Code Online (Sandbox Code Playgroud)
即使答案已添加到问题中。我花了一些时间研究它是如何工作的,我想添加一些事实和我的答案版本,
sed -i 's,^\(THISISMYVARIABLE[ ]*=\).*,\1'THISISMYVALUE',g' config.cfg
Run Code Online (Sandbox Code Playgroud)
解释:
sed 's/find_this/replace_with/',我们说 sed 来搜索和替换。还要记住,我们可以使用多个其他分隔符来代替/. 这里,使用。^\(THISISMYVARIABLE[ ]*=\).*。这意味着我们正在对比赛进行分组THISISMYVARIABLE[ ]*=。([ ]*如果键后有空格,则覆盖)\1是一个反向引用。我们正在引用我们用于匹配的正则表达式中的第一组。| 归档时间: |
|
| 查看次数: |
47783 次 |
| 最近记录: |