在bash中查找并替换变量

时间:2013-11-26 17:10:58

标签: linux bash shell sed debian

我正在使用bash,我想知道是否有一种很好的方法可以使用bash对文件进行查找和替换。在我的情况下,我想将一个占位符变量转换为orignal变量,使用任意数量的不同变量。例如:

"$PLACEHOLDER_ABC" -> $ABC 
"$PLACEHOLDER_123" -> $123 
"$PLACEHOLDER_qwe" -> $qwe

我不知道从哪里开始,我应该使用find,sed,while循环还是以上所有?

3 个答案:

答案 0 :(得分:1)

这样的东西
sed 's/\$PLACEHOLDER_/\$/g' file

会删除{$ 1}}在美元符号后找到的所有位置,有效地截断发生的参数扩展。

答案 1 :(得分:0)

你可能想看看宏处理器的“m4”。联机帮助页为here。它包含在大多数Linux / Unix发行版中。

这是一个小例子:

define(`hello', `Hello, World')
hello, welcome to m4!

如果我们使用命令

通过m4运行此文件
m4 sample.m4 > sample.txt

它产生以下输出:

Hello, World, welcome to m4!

答案 2 :(得分:0)

查找文件名-exec sed -i's / \ $ PLACEHOLDER _ / \ $ / g'{} \;