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

时间:2015-06-15 06:09:41

标签: text-processing perl

命令

public void init(){
    loadConfig();

    Timer scheduler = new Timer();
    scheduler.scheduleAtFixedRate(task,60000,60000);
}

final Runnable task = new Runnable() {
    public void run() {
        try {
            loadConfig();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
};

包括一些超过240个字母的句子。为什么呢?

示例数据

  

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

示例数据2

  

这个程序的指示取决于很多事情,我非常喜欢   这比Lorem ipsum更多,这太普通,需要太多   时间开放:|简短的选项,以防万一|一点点选择这么好   在这里也有|更短,哪个更好但是多少   问题|最短也不是最长的一次,但也不是   长1

1 个答案:

答案 0 :(得分:7)

你使用了错误的语法:perl -ne 'print unless /.[240,]/' input.txt > output.txt 用于匹配字符类,而在这里你试图匹配[]的一些出现,这可以使用{{{}}来完成1}}:

.

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

perl -ne 'print unless /.{240,}/' input.txt > output.txt