CMAKE при выполнении команды GREP оставляет выходную переменную пустой - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь получить информацию из файла с помощью regexp из файла cmake. Вот простой файл file.txt, расположенный в моем домашнем каталоге:

entry1
entry2

В CMake я вызываю grep следующим образом:

        SET(GREP_ARGS -oP \".*$\" /home/yuriy/file.txt)
        MESSAGE(STATUS ${GREP_ARGS})
        EXECUTE_PROCESS(
            COMMAND
            grep ${GREP_ARGS}
            OUTPUT_VARIABLE MODULE_MSGS
            ERROR_VARIABLE ERR)

Однако переменные вывода / ошибки оба пусты. Более того, я уверен, что команда выполняется, так как, если я меняю имя файла на несуществующее, я получаю ошибку «Нет такого файла или каталога» внутри моей выходной переменной. Поэтому мне кажется, что проблема в передаче параметров регулярного выражения. Я попытался обернуть его с помощью ", но это не помогает.

Вызов той же команды из bash дает правильный вывод в Ubuntu 18.04:

grep -oP ".*$" /home/yuriy/file.txt

Спасибо!

1 Ответ

0 голосов
/ 28 октября 2019

Наконец-то нашли решение. Правильный способ установки аргументов - без \" символов:

SET(GREP_ARGS -oP .*$ /home/yuriy/file.txt)

Не уверен, почему это так, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...