首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在两个图案之间打印线条?

如何在两个图案之间打印线条?
EN

Stack Overflow用户
提问于 2016-06-21 11:54:59
回答 1查看 4.2K关注 0票数 4

我希望将输入文件中的行@cluster t.# has ### elements (包括此行)和行@cluster t.#+1 has ### elements (最好省略此行)之间的所有内容打印到相应的编号输出文件(clust(#).txt)中。到目前为止,该脚本创建了适当的编号文件,没有任何内容。

代码语言:javascript
复制
#!/usr/bin/perl 

use strict;
use warnings;

open(IN,$ARGV[0]);

our $num = 0;

while(my $line = <IN>) {
    if ($line =~ /^\@cluster t has (\d+) elements/) {
        my $clust = "full";
        open (OUT, ">clust$clust.txt");

    } elsif ($line =~ m/^\@cluster t.(\d+.*) has (\d+) elements/) {
        my $clust = $1;
        $num++;
        open (OUT, ">clust$clust.txt");
        print OUT, $_ if (/$line/ ... /$line/);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2018-02-14 09:15:28

我有一个更简洁的方法来提供:

代码语言:javascript
复制
perl -ne 'print if /^foo/ .. /^base/' file.txt

样本输入

代码语言:javascript
复制
Lorem ipsum dolor
sit amet,
consectetur adipiscing
foo
bar
base
elit,
sed do

输出

代码语言:javascript
复制
foo
bar
base
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37935282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档