perl一个衬里​​以保留行尾

时间:2018-07-25 19:21:39

标签: windows perl line-endings

我使用以下perl一种衬垫来搜索和替换文件中的图案:

perl -pi.bak -e "s/pattern/replacement/g" file

问题是在Windows上perl用Windows样式替换行尾。我需要保留行尾,无论它们是什么。是否有命令行选项或其他方法可以实现?提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果您在谈论:utf8层,则可以使用以下内容:

perl -i.bak -CSD -pe"s///" file

但是:raw没有选择。


如果您在谈论:encoding层,则可以使用以下内容:

perl -i.bak -Mopen=:std,:encoding(...) -pe"s///" file

但是:raw不支持use open


专门使用-i时(即不使用STDIN或STDOUT时),以下操作将满足您的要求:

set PERLIO=:raw
perl -i.bak -pe"s///" file
set PERLIO=