JnB*_*ymn 3 regex perl multiline command-line-tool
我经常使用正则表达式来转换文本.
要从命令行转换巨型文本文件,perl让我这样做:
perl -pe < in.txt > out.txt
Run Code Online (Sandbox Code Playgroud)
但这本质上是逐行的.偶尔,我想匹配多线的东西.
我怎么能在命令行中这样做?
要覆盖文件而不是逐行处理,请使用-0777开关:
perl -0777 -pe 's/.../.../g' in.txt > out.txt
Run Code Online (Sandbox Code Playgroud)
作为记录在perlrun #Command Switches:
特殊值
-00将导致Perl在段落模式下粘贴文件.任何值-0400或更高的值都会导致Perl整个文件,但按照惯例,该值-0777是通常用于此目的的值.
显然,对于大文件,这可能效果不好,在这种情况下,您需要编写某种类型的缓冲区来进行此替换.如果没有关于您意图的真实信息,我们无法提供更好的建议.