我遇到了一个matlab脚本,该脚本使用名为replaceinfile.m的perl脚本,该脚本使用
perlCmd = sprintf('"%s"',fullfile('/usr/bin/perl'));
perlstr = sprintf('%s -i.bak -pe"s/%s/%s/g" "%s"', perlCmd, str1, str2,infile);
并希望使用replaceinfile函数替换多行文本,例如:
Line1
Line2
Line3
Line4
变为:
Line1
Line4
我试过
replaceinfile('Line2\r\nLine3\r\n','',inputfile,outputfile)
因为有CR LF'我的输入文件中的行结尾但这不起作用,我无法弄清楚正确的正则表达式是什么。
有什么建议吗?谢谢!
答案 0 :(得分:2)
答案 1 :(得分:0)
以下内容应该有效
perlstr = sprintf('%s -i.bak -pe"undef $/; s/%s/%s/g" "%s"', perlCmd, str1, str2,infile);
将\r
更改为\r?
可能是个好主意,然后它也适用于仅LF文件。