Sed Windows中使用的GNU和行终止字符

Sed Windows中使用的GNU和行终止字符,sed,gnu,Sed,Gnu,在Windows/DOS版本的GNU中使用什么字符来终止一行,这有点令人困惑。特别是,在n命令之后,用于连接两行的换行符(\r\n vs\n)是什么 < >我想创建一个脚本,它结合了使用行继续字符\语法的C++源代码行。 e、 g 应通过我的脚本将其合并到以下内容中: int a=10; 显然,我应该使用类似于“N”命令的命令,然后使用“s”命令来替换模式空间中的任何内容,这些内容看起来像\后跟一个换行符和一个空字符串。但在Windows中,此换行符是\r\n还是\n在“n”命令之后 我应该使

在Windows/DOS版本的GNU中使用什么字符来终止一行,这有点令人困惑。特别是,在n命令之后,用于连接两行的换行符(\r\n vs\n)是什么

< >我想创建一个脚本,它结合了使用行继续字符\语法的C++源代码行。 e、 g

应通过我的脚本将其合并到以下内容中:

int a=10;
显然,我应该使用类似于“N”命令的命令,然后使用“s”命令来替换模式空间中的任何内容,这些内容看起来像\后跟一个换行符和一个空字符串。但在Windows中,此换行符是\r\n还是\n在“n”命令之后


我应该使用\\\r\n还是\\\n来搜索具有行延续模式的行?

我不太确定sed的Windows/DOS版本,但如果它与中的版本相似,它会神奇地将
\r\n
转换为
\n
进行处理。与链接问题一样,您可能需要额外的
s/$/\r/
才能将
\r
放回。我测试了

sed -e :a -e '/\\$/N; s/\\\n//; ta; s/$/\r/'
在Cygwin,它似乎起了作用

我应该使用\\r\n或\\n来搜索具有行延续模式的行吗

为什么不两者都用呢?i、 e.在
sed中

s/\r\?\n//g

将同时匹配
\r\n
\n
<代码>?如果使用ERE,可能不需要转义。

在Windows上使用GNU时,您不必担心\r\n vs\n。程序以“文本”模式打开文件,该模式将文件视为Unix系统上的\r\n字符


当您想禁用此模式时,可以在Windows计算机上使用'-b'或'--binary'选项,并将\r视为非行尾字符,例如在行的“中间”搜索'\r'(即以'\n'结尾)

当使用“N”命令时,两行的连接是什么?如果我能竖起大拇指,我会的。
s/\r\?\n//g