当前位置: 首页 > 面试题库 >

如何使用sed替换配置文件的变量?

娄建义
2023-03-14
问题内容

我一直在网上寻找这个答案,但似乎找不到。

我有一个配置文件,其中包含:

VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE5
VAR6=VALUE6

我想将VAR5的值从VALUE5更改为VALUE10。不幸的是,我不知道VALUE5的值,因此无法搜索。因此,基本上我需要使用sed(或其他任何值)将VAR5的值替换为我想替换为的任何值。


问题答案:

您可以尝试使用此sed:

sed -i.bak 's/^\(VAR5=\).*/\1VALUE10/' file

它给:

VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE10
VAR6=VALUE6


 类似资料:
  • 问题内容: 我有一个文件“ test.txt”,其中包含以下内容 我要做的是将它们替换为: 但是为什么这段代码不起作用? 什么是正确的方法? 问题答案: 使用代替。并添加标志以替换所有内容。

  • 问题内容: 尝试用sed替换字符串时发生奇怪的事情。这有效: 因此,当我手动键入字符串时,它可以工作。但在以下情况下,不会发生替换: 当我回显这两个变量PATTERN和REPLACEMENT时,它们具有正确的值。 我试图用配置目录中所有文件中的替换字符串替换所有出现的模式字符串。 问题答案: 尝试 代替。’引号不会扩展变量。

  • 问题内容: 如果我从脚本运行以下命令: 没事。 但是,如果我运行: 我在教程中读到,要从shell替换环境变量,您需要先停止操作,然后对部分进行“引用”,以便不直接替换该部分,这是我所做的,并且仅当该变量在紧接之前定义时才起作用。 我如何被s识别为shell中定义的环境变量? 问题答案: 您的两个示例看起来相同,这使问题难以诊断。潜在问题: 您可能需要双引号,例如 可能包含一个斜杠,在这种情况下,

  • 我很难匹配和捕捉这些。目前我正在尝试以下变体: 我认为sed有一些regex或捕获组行为我不理解

  • 我需要在一个缩小的javascript文件中替换几个值。操作系统是高山Linux。 我正在尝试编写一个通用正则表达式,它将查找和任何字符,直到下一个像这样:并替换为或无论变量中的值是什么。这个脚本需要一直工作。它不应该依赖于在之后出现的was(表示属性中的值)。 以下是文件中的前几个字符 这是我的开始它根本不是通用的。。。 我试了几个小时——任何建议都欢迎。 提前谢谢!

  • 问题内容: 我想启用此文件中的所有apt存储库 使用sed,这是一种简单的方法,最优雅(“ pythonic”)的方法是什么? 问题答案: massedit.py(http://github.com/elmotec/massedit)为您做脚手架,只留下正则表达式来编写。它仍处于测试阶段,但我们正在寻找反馈。 将以diff格式显示差异(之前/之后)。 添加-w选项以将更改写入原始文件: 或者,您现