为什么这种排除不适用于长句?

Léo*_* 준영 1 perl text-processing

命令

perl -ne 'print unless /.[240,]/' input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)

其中包括一些超过240个字母的句子.为什么?

示例数据

制定世界滑稽社会计划,为那些正在为体育和社交生活而​​努力工作的年轻人,让他们有时间去比萨店,做一些有趣的事,编程和享用美味的早餐:自由时间程序的世界场景通常太长,以至于这个明星可能会使程序失望(*)|再次是一个非常长的选项,这可能不是使这个程序烦恼的原因|更好的更短的选项,这是好的,但很好写这里咖啡早上的消息| c最后一个选项总是很好,因为你知道你可以很快停止1

示例数据2

这个程序的指示取决于很多东西,我比Lorem ipsum更喜欢这个太普通并且花费太多时间打开:|短选项以防万一|更长的选项这么好在这里也有|更短的是更好但问题是:最短的问题不是最短的,而是不是太长1

kos*_*kos 7

您使用了错误的语法:[]用于匹配字符类,而在这里您尝试匹配一些事件.,可以使用{}以下方法完成:

perl -ne 'print unless /.{240,}/' input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)

另外,正如salva在评论中所建议的那样,模式可以缩短为.{240}:

perl -ne 'print unless /.{240}/' input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)