LINUX.ORG.RU

Вcтавка с помощью sed

 ,


0

1

Пишу скрипт в какой-то момент он должен вставить в файл в определенную строку часть конфига. вставляю с помощью sed -i 'na\...'/test.ini проблема заключается в том, что в конфиге, который нужно вставить есть ' и sed вместо вставки считает, что это закрытие. Я уже менял одинарные кавычки на двойные, пытался экранировать каждую одинарную кавычку.



Последнее исправление: dumasti (всего исправлений: 1)

Вставить, я так понимаю, нужно в определённое место?

проблема заключается в том, что в конфиге, который нужно вставить есть ’ и sed вместо вставки считает, что это закрытие

Экранируй: \'.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

да, надо вставить после 10 строки. Вот пример того, что надо вставить: sed -i '10a\'memcache.local' => '\OC\Memcache\Redis', 'filelocking.enabled' => 'true', 'memcache.distributed' => '\OC\Memcache\Redis', ' memcache.locking '=>' \OC\Memcache\Redis ', ' redis '=> [ ' host '=>' localhost ', ' port '=> 6379, ' timeout '=> 0, ' dbindex '=> 0, ],' /var/www/$1/config/config.php

dumasti
() автор топика

Не всегда нужен sed, иногда достаточно ed

ed config.ini <<END
10
a
'memcache.local' => '\OC\Memcache\Redis', 'filelocking.enabled' => 'true', 'memcache.distributed' => '\OC\Memcache\Redis', ' memcache.locking '=>' \OC\Memcache\Redis ', ' redis '=> [ ' host '=>' localhost ', ' port '=> 6379, ' timeout '=> 0, ' dbindex '=> 0, ],
.
w
q
END
Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.