Как инвертировать вывод sed?

Итак, я действительно делаю это в одном из моих проектов.

Во-первых, библиотека должна быть собрана с помощью ADD_LIBRARY (), но я предполагаю, что вы делаете это. Что-то вроде

ADD_LIBRARY (${MyLibName} ${SOURCES}) в CMakeLists.txt библиотеки

, которое добавляет библиотеку в список библиотек cmake.

Во-вторых, вы добавляете библиотеку в свой проект с помощью

target_link_libraries (${PROJECT_NAME} ${MyLibName}) в CMakeLists.txt исполняемого файла, того же, где у вас есть add_executable (${PROJECT_NAME} ${SOURCES})

, который будет настраивать цепочка зависимостей для принудительного создания MyLibName перед PROJECT_NAME.

9
задан 11 April 2009 в 03:52
поделиться

1 ответ

Попробуйте использовать обратные ссылки:

sed 's/.*\(searchstring\).*/___\1___/'

. * вокруг строки поиска будут соответствовать всему, кроме строки, а скобки сообщают sed запомнить что это соответствует. Вы можете сослаться на первую совпавшую строку с помощью \ 1 .

Вот пример (замена всего, кроме 'bar baz'):

$ echo "foo bar baz qux" | sed 's/.*\(bar baz\).*/___\1___/'
___bar baz___

Вы можете заменить 'bar baz' любым шаблоном, который вам нравится в вышеупомянутое; Я просто использовал простую строку для простоты.

11
ответ дан 4 December 2019 в 20:24
поделиться
Другие вопросы по тегам:

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