如何将包含路径的变量插入到sed中

时间:2017-05-09 10:36:04

标签: linux bash shell sed

我正在编写一个linux脚本,用于替换文件的字符串。这是我的剧本:

#!/bin/sh
var=./video/example.mp4
`sed -i '' 's/sceneFilePath:.*/sceneFilePath: "$var",/g' test`

在名为test的文件中,有一行如下:

sceneFilePath: "t.mp4",

我需要的是用以下一行代替这一行:

sceneFilePath: "./video/example.mp4",

这意味着双引号之间的内容应替换为$var

然而,当我执行我的脚本时,我得到sceneFilePath: "$var",

我已经阅读了这个答案:Replace a string in shell script using a variable

然而,我收到错误:

  

sed:1:“s / sceneFilePath:。* / scen ...”:替换命令中的错误标志:   'V'

1 个答案:

答案 0 :(得分:0)

var='.\/video\/example.mp4'
sed -i '' "s/sceneFilePath:.*/sceneFilePath: \"$var\",/g" test

否则:

var='./video/example.mp4'
sed -i '' "s#sceneFilePath:.*#sceneFilePath: \"$var\",#g" test