perl使用一行来保留行结尾



我使用以下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=

最新更新