Bash 如何使用sed用backtick替换字符串
如何使用shell/bash脚本的“sed”将字符串替换为变量的内容,并用锐/反斜杠将其包围 例如: 包含行的文件(file.txt)Bash 如何使用sed用backtick替换字符串,bash,shell,sh,Bash,Shell,Sh,如何使用shell/bash脚本的“sed”将字符串替换为变量的内容,并用锐/反斜杠将其包围 例如: 包含行的文件(file.txt) FILE_PATH="this/is/the/file/path" 替换 FILE_PATH=`get/file/path/get.sh FILE_NAM` 我尝试了以下sed,但对我无效 SCRIPT_PATH="get/file/path/get.sh FILE_NAM" sed -i "s,\&quo
FILE_PATH="this/is/the/file/path"
替换
FILE_PATH=`get/file/path/get.sh FILE_NAM`
我尝试了以下sed,但对我无效
SCRIPT_PATH="get/file/path/get.sh FILE_NAM"
sed -i "s,\"this/is/the/file/path\",`$SCRIPT_PATH`,g" $file
上述结果
FILE_PATH=get/file/path/
但这是意料之中的
FILE_PATH=`get/file/path/get.sh FILE_NAM`
有人能帮我用一个变量的内容替换字符串吗?变量的值是acure。如果问题纯粹是由于
sed
,那么您的命令格式不太正确。看起来总的问题是没有打印`字符的转义序列,这是bash中的一个特殊字符,用于在另一个命令中执行shell命令
基于您期望的结果和示例代码,下面的内容在bash中适用于我
SCRIPT_PATH="this/is/the/file/path"
sed -i "s|\"this/is/the/file/path\"|\`$SCRIPT_PATH\`|g" file.txt
如果问题纯粹是由
sed
引起的,则您的命令格式不太正确。看起来总的问题是没有打印`字符的转义序列,这是bash中的一个特殊字符,用于在另一个命令中执行shell命令
基于您期望的结果和示例代码,下面的内容在bash中适用于我
SCRIPT_PATH="this/is/the/file/path"
sed -i "s|\"this/is/the/file/path\"|\`$SCRIPT_PATH\`|g" file.txt
我发现答案如下:
SCRIPT_PATH="get/file/path/get.sh FILE_NAM"
sed -i "s,\"this/is/the/file/path\","\`"$SCRIPT_PATH"\`",g" $file
我发现答案如下:
SCRIPT_PATH="get/file/path/get.sh FILE_NAM"
sed -i "s,\"this/is/the/file/path\","\`"$SCRIPT_PATH"\`",g" $file