Perl正则替换需求:保留换行前字符仅移除行内意外换行符
解决CSV行内意外换行的Perl单行命令
你需要的是仅移除行内意外换行(即换行前不是数字的换行符),同时保留正常的行尾换行(以数字结尾的行),可以用这个Perl单行命令:
perl -0777 -pe 's/(?<![0-9])\r?\n//g'
命令说明:
-0777:让Perl一次性读取整个文件内容,而非逐行处理,这样能准确识别跨行的意外换行场景。(?<![0-9]):反向预查断言,确保要替换的换行符前面不是数字,只针对意外换行生效。\r?\n:匹配Windows(\r\n)和Unix(\n)两种格式的换行符,兼容不同系统生成的CSV文件。
效果示例:
原内容:
foob ar123 test456 line break789
处理后:
foobar123 test456 linebreak789
内容的提问来源于stack exchange,提问作者Life-orb
相关产品推荐
相关产品推荐

