2

У меня есть следующий файл:

  • test.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 ответ1

3

Вы должны экранировать первый разделитель, если он отличается от / в адресе.

Также, если вы используете переменные, то вы должны выставить их в оболочку (с двойными кавычками, чтобы избежать проблем с пробелами).

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

или же

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .