Sed-使用变量删除包含多个特殊字符的行

Sed-使用变量删除包含多个特殊字符的行

我有以下文件:

  • 测试.txt

其中包含:

3;/var/tmp/test.mp4
3;/var/tmp/test2.mp4
1;/var/tmp/test3.mp4

我需要删除例如“3;/var/tmp/test2.mp4“使用变量。

string="3;/var/tmp/test2.mp4"
sed -i '#$string#d' test.txt

没有抛出任何错误,但我似乎无法删除该行...如能得到任何帮助我将不胜感激。

谢谢!

答案1

/如果与地址不同,则必须转义第一个分隔符。

此外,如果您使用变量,那么您必须将它们公开给 shell(使用双引号以避免出现空白问题)。

sed -i "\#$string#d" test.txt

或者

sed -i '\#'"$string"'#d' test.txt

相关内容