我有以下字符串This is ${name} ${surname}
。此字符串不可替代
现在我需要用我自己的数据替换${name}
和${surname}
。我想使用 sed/awk,但是当我输入时
string="This is ${name} ${surname}"
echo $string | awk '{... gsub() ...}'
那么问题是,为了awk
我只通过This is
,因为echo
解决了空${}
。
我不知道我是否可以使用类似的东西
awk <<EOF
This is ${name} ${surname}
EOF
因为我需要将其包装成变量,并且由于 bash 是单行代码,我不能那样打字
VAR=$(awk <<
This is ${name} ${surname}
EOF)
感谢您抽出宝贵时间
使用单引号定义字符串(以避免 shell 扩展):
string='This is ${name} ${surname}'
然后在awk中使用:
echo "$string" | awk '{print $0}'
This is ${name} ${surname}
您可以看到awk
如何获取未展开的字符串。
简单的shell怎么样:
template='This is ${name} ${surname}'
name=Peter
surname=Falk
eval "echo $template"
将打印
This is Peter Falk
您想将awk
用于此简单任务有什么特殊原因吗?