我有一个名为sample.txt的文本文件,其中包含
name="sam:18"
我希望将其替换为配置文件中给出的名称,该名称名为name.config,其中包含
name="robin:19"
这是我的脚本名为nameReplace.sh:
#!/bin/bash
source name.config
sed -i -e 's/name=[A-Za-z0-9]*/name=${name}/g' sample.txt
这会执行但不会对sample.txt进行任何更改。
我想在sample.txt中输出以下内容:
name="robin:19"
请帮忙?谢谢
答案 0 :(得分:1)
你的正则表达式:
name=[A-Za-z0-9]*
赢了不匹配:
name="sam:18"
将您的sed更改为:
sed -i.bak "s/name=.*/name=\"${name}\"/" sample.txt
此处使用双引号可以展开$name
变量。