Я пытаюсь редактировать файл с именем BookDB.txt, который содержитUnix СЭД команда не работает
Boy:Man:67.00:15:28
Harry Potter - Order of Phoenix:J.K.Rowling:70.00:40:20
Harry Potter - Half Blood Prince:J.K.Rowling:40.00:50:20
это моя команда
sed -i "s/""$title""/""$newtitle""/g" ./BookDB.txt
Он работает. Но я хочу убедиться, что он редактирует точную строку $ title, потому что если позволяет сказать, что она содержит «a», тогда вся буква a в моем файле будет изменена. Как использовать <\ \>
в этом случае?
Почему не 'sed -i 's/$ title/$ newtitle/g"./BookDB.txt'? Где '$ title' и' $ newtitle' - это переменные, содержащие термин и замену. Ваши цитаты слишком многочисленны. Непонятно, почему вы предлагаете граничные выражения, добавьте дополнительные пояснения. –
Мой учитель сказал нам, что мы всегда должны ставить кавычки вокруг переменных. Я знаю, что это выглядит действительно глупо, но он говорит, что если переменная содержит пробел, вся программа будет испорчена. –
Он прямо там, но там '' s /././ g ''цитаты и' /../ ../ 'разделители предотвращают любую другую интерпретацию строк. ':)' –