linux - 如何将包含路径的变量插入sed

标签 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 ...": bad flag in substitute command: 'v'

最佳答案

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

否则:

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

关于linux - 如何将包含路径的变量插入sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43867503/

相关文章:

linux - 解决在 Linux 虚拟机之外启动 Oracle Enterprise Manager 的问题

linux - Linux 内核使用哪个程序集?真的是NASM吗?

bash - aws ec2 启动时运行脚本程序

linux - crontab 没有按计划时间运行

shell - awk 与 printf 换行

linux - 以太网驱动程序无法在 linaro 版本 3.1 上运行

bash - 你如何在 Windows 上的 Bash 中禁用铃声?

bash - 制作 bash 脚本来检查连接并在必要时更改连接。帮我改进一下?

bash - MacOS 更喜欢/bin/sh 还是/bin/bash?

c - "O_DIRECT 512-byte aligned"是什么意思?