Строка замены “Разработка” с “Подготовкой” или “Производством” с помощью SED

Я пытаюсь заменить строку

: 'development'

с

: 'production'

использование sed.

Я попробовал несколько опций включая:

sed -i "s|: \'development\'|: \'staging\'|g" index.php

но без любой удачи. Вывод:

sed: 1: "index.php": command i expects \ followed by text

Кто-то может помочь?

3
задан 1 January 2019 в 12:01

3 ответа

Вы не должны выходить из одинарных кавычек в двойных кавычках, видеть этот мой ответ:

Включение символов в двойных кавычках сохраняет литеральное значение всех символов в кавычках, за исключением $, `, \, и, когда расширение истории включено, !.

Таким образом они работают:

sed -i "s/: 'development'/: 'staging'/g" index.php
sed -i "s|: 'development'|: 'staging'|g" index.php
sed -i 's|: '\''development'\''|: '\''staging'\''|g' index.php
5
ответ дан 1 December 2019 в 13:22

Я предлагаю:

sed "s/: 'development'/: 'production'/" index.php`
2
ответ дан 1 December 2019 в 13:22

Мне удалось уладить его. Выпущенный в машине Mac я должен снабдить постфиксом .bak-i. Но в Linux это работало без него. Я сначала пробовал его в своей локальной машине для наблюдения вывода, и это перестало работать.

Спасибо всем за Вашу справку.

0
ответ дан 1 December 2019 в 13:22

Другие вопросы по тегам:

Похожие вопросы: