0
Как sed
работает со специальными символами? Я пытаюсьsed и escape-символы
Это мой сценарий (он фиксирует Qt файл проекта под Ubuntu, «потому что Ubuntu не имеет Qt-multimadia):
OldInclude='QT += multimedia'
NewInclude='
INCLUDEPATH += //usr//include//QtMobility
INCLUDEPATH += //usr//include//QtMultimediaKit'
find -iname "*.pro" -type f -exec sed -i "s/$OldInclude/$NewInclude/g" {} \;
В файле:
#-------------------------------------------------
#
# Project created by QtCreator 2013-03-07T02:19:23
#
#-------------------------------------------------
QT += multimedia
QT -= gui
TARGET = MultiItem
TEMPLATE = lib
DEFINES += MULTIITEM_LIBRARY
SOURCES += multiitem.cpp
//Even more lines here
Но он ничего не заменяет - похоже, что я делаю что-то неправильно со строками ввода.
Как их заменить? Файл я собираюсь обновить следующий:
Вы должны предоставить файл примера (или выдержку), для которого он не может быть заменен. –
Не используйте '/' для разделителей 'sed', если ваши шаблоны содержат символы'/'. –
@CarlNorum Я заменил «s/$ OldInclude/$ NewInclude/g» на «s @ $ OldInclude @ $ NewInclude @ g». Он работает, но ничего не заменяет :( –