我正在使用bash,我想知道是否有一种很好的方法可以使用bash对文件进行查找和替换。在我的情况下,我想将一个占位符变量转换为orignal变量,使用任意数量的不同变量。例如:
"$PLACEHOLDER_ABC" -> $ABC
"$PLACEHOLDER_123" -> $123
"$PLACEHOLDER_qwe" -> $qwe
我不知道从哪里开始,我应该使用find,sed,while循环还是以上所有?
答案 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'{} \;