Sed Windows中使用的GNU和行终止字符
在Windows/DOS版本的GNU中使用什么字符来终止一行,这有点令人困惑。特别是,在n命令之后,用于连接两行的换行符(\r\n vs\n)是什么 < >我想创建一个脚本,它结合了使用行继续字符\语法的C++源代码行。 e、 g 应通过我的脚本将其合并到以下内容中: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”命令之后 我应该使
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