在文件中的行上使用字符串REGEX REPLACE,在数据中使用分号

时间:2017-08-02 14:30:08

标签: cmake

假设我想在文件中添加一些字符串。我使用以下

file(READ input_file filedata)
string(REGEX REPLACE "([^\n]+)\n" "Hello : \\1\n" filedata ${filedata})
file(WRITE  output_file "${filedata}")

对于从输出中消失的分号,可以正常工作。我知道分号是特殊的,因为它们被用作列表分隔符,虽然我不太了解它们为什么会消失。那么有没有办法不将它们或任何其他字符视为特殊字符,我希望输出中的\ 1简单为输入中的实际文本。

1 个答案:

答案 0 :(得分:1)

每次读取变量时都需要引用变量。否则,它有时会被视为列表变量,而分号则是列表项分隔符。

那是:


file(READ input_file filedata)
string(REGEX REPLACE "([^\n]+)\n" "Hello : \\1\n" filedata "${filedata}")
file(WRITE  output_file "${filedata}")