CMAKE执行GREP命令后输出变量为空

问题描述 投票:0回答:1

我正在尝试使用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)

但是输出/错误变量都为空。此外,我确定该命令已执行,因为如果我将文件名更改为不存在的文件,则会在输出变量中收到错误消息“ No such file or directory”。因此,在我看来,问题出在正则表达式参数传递中。我试图用"包装它,但没有帮助。

从bash调用同一命令可以在Ubuntu 18.04上正确输出:

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

谢谢!

cmake grep
1个回答
0
投票

最后找到了解决方案。设置参数的正确方法是不使用\"符号:

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

不知道为什么会这样,但是可以。

© www.soinside.com 2019 - 2024. All rights reserved.