我相信这可能是一个简单的问题,但我到处寻找并尝试了一些解决方法,但我仍然没有解决问题。
问题描述: 我必须替换文件中的字符,我可以使用命令行轻松完成:
sed -e 's/pattern1/pattern2/g' full_path_to_file/file
但是当我在bash脚本中使用相同的行时,我似乎无法替换它,并且我没有收到错误消息,只是没有替换的文件内容。
#!/bin/sh
VAR1="patter1"
VAR2="patter2"
VAR3="full_path_to_file"
sed -e 's/${VAR1}/${VAR2}/g' ${VAR3}
任何帮助都将不胜感激。
非常感谢你的时间。
答案 0 :(得分:26)
答案 1 :(得分:0)
我使用像你这样的剧本......我的作品也是如此!
export const contacts =
{"name": "mkyong",
"age": 30,
"address": {
"streetAddress": "88 8nd Street",
"city": "New York"
},
"phoneNumber": [
{
"type": "home",
"number": "111 111-1111"
},
{
"type": "fax",
"number": "222 222-2222"
}
]
};
看到,我的使用“-i”......和分隔符“&”我使用的与你的不同。 分隔符“&”可以使用任何其他没有格局的角色。
您可以使用:
#!/bin/sh
var1='pattern1'
var2='pattern2'
sed -i "s&$var1&$var2&g" *.html
...
如果我的模式是:“test@email.com”当然你必须使用不同的分隔符,如“#”,“%”......好吗?