0
我想用sed扩展/替换一个变量的值。实施例 文件TestVarExpand.txt包含使用sed脚本展开环境变量
Student: $name
Class..: ${classname}
在命令行,手动键入:
v1="John McGyver"
v2="Molecular Biology CS234"
sed -re "s/[$]name/$v1/" -e "s/[$]\{classname\}/$v2/g" TestVarExpand.txt
控制台输出(校正):
学生:约翰McGyver
类..:分子生物学CS234
在真实场景中,我有很多变量需要扩展。因此,我认为使用sed脚本在Sed - An Introduction and Tutorial by Bruce Barnett教导的:的 内容TestVarExpand.sed:
#!/bin/sed -rf
s|[$]name|"$v1"|g
s|[$]\{classname\}|'$v2'|g
而且通过测试:
chmod 744 ./TestVarExpand.sed
v1="John McGyver"
v2="Molecular Biology CS234"
./TestVarExpand.sed < ./TestVarExpand.txt
控制台输出(不正确):
学生:“$ v1”
类别:'$ v2'
问题:在TestVarExpand.sed中执行命令行中sed -re“expr”的等价性(双引号以评估变量)是什么语法?谢谢。
感谢。今天浪费了一些时间在* .sed脚本中尝试各种语法(我喜欢每行1 expr中的所有sed表达式)。但未能实现env变量的扩展。以命令行方式调用sed使用双引号表达式的方式似乎是通过sed使用变量的唯一方法。 – Polymerase