我使用以下perl-one liner来搜索和替换文件中的模式:
perl -pi.bak -e "s/pattern/replacement/g" file
问题是,在Windows上,perl用Windows样式替换了行尾。我需要保留行尾,不管它们是什么。有没有命令行选项或其他方法可以实现这一点?提前非常感谢。
如果您谈论的是:utf8
层,您可以使用以下内容:
perl -i.bak -CSD -pe"s///" file
但是:raw
没有选项。
如果您谈论的是:encoding
层,您可以使用以下内容:
perl -i.bak -Mopen=:std,:encoding(...) -pe"s///" file
但CCD_ 5不支持CCD_ 4。
当特别使用-i
时(即,当不使用STDIN或STDOUT时(,以下将执行您想要的操作:
set PERLIO=:raw
perl -i.bak -pe"s///" file
set PERLIO=