join lines after colon (perl)

后端 未结 3 797
忘了有多久
忘了有多久 2021-01-27 23:21

I have this lines:

alpha: beta
beta: alpha, beta
omega: beta, gamma, alpha
gamma: 
alpha
beta
gamma
epsilon: alpha

I want to join line contains

3条回答
  •  梦如初夏
    2021-01-28 00:07

    This should do the same as RCs code, but a little bit shorter:

    my @lines;
    while() {
        chomp;
        if(m/^\w+:\s(\w+(,\s)?)*$/) {
                push @lines, $_;
        } else {
                $lines[$#lines] .= ", " unless($lines[$#lines] =~ m/^\w+:\s?$/);
                $lines[$#lines] .= $_;
        }
    }
    print join "\n", @lines;
    

提交回复
热议问题