【发布时间】:2013-11-20 13:25:39
【问题描述】:
我想在 KSH(使用 SED)的 conf 文件中查找和替换变量。 我的问题是:通过考虑变量的名称可以包含特殊字符,识别 KSH 变量(如 $toto 或 ${toto})的正确正则表达式模式是什么?
这是一个例子:
假设我在当前的 shell 中有 var_1=value1 和 var_2=value2(可在 export -p 中使用 grep)。
查找替换前的配置文件
PARAM1=$var_1/tata.txt
PARAM2=${var_2}/tata.txt
查找替换后的配置文件
PARAM1=value1/tata.txt
PARAM2=value2/tata.txt
我必须做的:
- 在then conf文件中找到$var_1和${var_2}(用通用正则表达式,我想我不知道conf文件中是否有变量)
- 使用 export -p | 搜索每个的值grep var_1 和 export -p | grep var_2
- 将 conf 文件中的这 2 个变量替换为之前搜索找到的值
感谢您的回答。
【问题讨论】:
-
提供输入文件的示例和您的预期输出。
-
@anubhava:这是一个例子(直接在帖子中)