相关疑难解决方法(0)

如何在另一个文件上执行一个文件中定义的替换

前言:每隔几天就会出现一个这种类型的问题,用 很容易解决sed,但需要时间来解释。我正在写这个问题和答案,所以我以后可以参考这个通用解决方案,只解释针对特定情况的适应。随意贡献。

我有带有变量定义的文件。变量由大写字母或下划线组成_,它们的值跟在:=. 这些值可以包含其他变量。这是Gnom.def

NAME:=Gnom
FULL_NAME:=$FIRST_NAME $NAME
FIRST_NAME:=Sman
STREET:=Mainstreet 42
TOWN:=Nowhere
BIRTHDAY:=May 1st, 1999
Run Code Online (Sandbox Code Playgroud)

然后是另一个form.txt带有模板表单的文件:

$NAME
Full name: $FULL_NAME
Address: $STREET in $TOWN
Birthday: $BIRTHDAY
Don't be confused by $NAMES
Run Code Online (Sandbox Code Playgroud)

现在我想要一个脚本,它用$另一个文件中的定义递归地替换表单中的变量(用和标识符标记),如有必要,所以我得到了这个文本:

Gnom
Full name: Sman Gnom
Address: Mainstreet 42 in Nowhere
Birthday: May 1st, 1999
Don't be confused by $NAMES
Run Code Online (Sandbox Code Playgroud)

最后一行是为了确保不会意外替换变量的子字符串。

sed text-processing

3
推荐指数
1
解决办法
229
查看次数

标签 统计

sed ×1

text-processing ×1