Sed没有在bash脚本中工作

Isa*_*lle 14 bash shell sed

我相信这可能是一个简单的问题,但我到处寻找并尝试了一些解决方法,但我仍然没有解决问题.

问题描述:我必须替换文件中的字符,我可以使用命令行轻松完成:

sed -e 's/pattern1/pattern2/g' full_path_to_file/file
Run Code Online (Sandbox Code Playgroud)

但是当我在bash脚本中使用相同的行时,我似乎无法替换它,并且我没有收到错误消息,只是没有替换的文件内容.

#!/bin/sh

VAR1="patter1"
VAR2="patter2"

VAR3="full_path_to_file"

sed -e 's/${VAR1}/${VAR2}/g' ${VAR3}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

非常感谢您的宝贵时间.

Dmi*_*kov 29

尝试

sed -e "s/${VAR1}/${VAR2}/g" ${VAR3}
Run Code Online (Sandbox Code Playgroud)

Bash参考说:

字符'$'和'`'在双引号内保留其特殊含义

因此,它将能够解决您的变量

  • 很好的答案。如果您想保留换行符,请转到此处:/sf/ask/1758016221/ (2认同)