我正试图从带有cmake文件的regexp中获取文件信息。 这是一个简单的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
谢谢!
答案 0 :(得分:0)
最后找到了解决方案。设置参数的正确方法是不使用\"
符号:
SET(GREP_ARGS -oP .*$ /home/yuriy/file.txt)
不知道为什么会这样,但是它可以工作。