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

Cmake 在文件中的行上使用字符串REGEX REPLACE,在数据中使用分号,cmake,Cmake,假设我想在文件中的每一行前面加上一些字符串。我正在使用下面的 file(READ input_file filedata) string(REGEX REPLACE "([^\n]+)\n" "Hello : \\1\n" filedata ${filedata}) file(WRITE output_file "${filedata}") 除了从输出中消失的分号之外,它工作得很好。我知道分号的特殊之处在于它们被用作列表分隔符,尽管我不太明白为什么分号会消失。因此,有没有办法不将它们或任何其

假设我想在文件中的每一行前面加上一些字符串。我正在使用下面的

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

除了从输出中消失的分号之外,它工作得很好。我知道分号的特殊之处在于它们被用作列表分隔符,尽管我不太明白为什么分号会消失。因此,有没有办法不将它们或任何其他字符视为特殊字符,我希望输出中的\1是输入中的实际文本。

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

即:

file(READ input_file filedata)
string(REGEX REPLACE "([^\n]+)\n" "Hello : \\1\n" filedata "${filedata}")
file(WRITE  output_file "${filedata}")
文件(读取输入文件filedata)
字符串(正则表达式替换“([^\n]+)\n”“Hello:\\1\n”filedata“${filedata}”)
文件(写入输出文件“${filedata}”)