sed от терминала при замене двойных кавычек одинарными кавычками

Я имею

echo "A url: \\\"http:..."

который читает "A url: \"http:..." (<-это - то, как это находится в моем текстовом файле),

Мне нужно

echo "A url: \'http:..."

однако из-за всех кавычек моя команда sed не работает правильно

echo "A url: \\\"http:..." | sed -r 's/\\"+/\\\'/g'

Я вижу, почему это перестало работать (одинарная кавычка посреди sed оператора является проблемой, но что я могу делать с этим? Я пытался искать третий тип кавычек для использования, но не мог найти ту. Какие-либо взломы?

1
задан 12 March 2019 в 17:48

1 ответ

Если Вы хотите изменить какое-либо возникновение \" с \', можно сделать это:

$ echo "A url: \\\"http:..." | sed -r "s/\\\"/\\'/g"
A url: \'http:...

Просто использование " для внешних кавычек в Вашем sed и можно затем использовать ' в замене. Вы не хотите "+, если у Вас не могло бы быть больше чем одного последовательного ", и Вы хотите заменить всех их. Если Вы делаете, используйте sed -r "s/\\\"+/\\'/g".

3
ответ дан 3 December 2019 в 07:21

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

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