在冒号后加入行(perl) [英] join lines after colon (perl)

查看:49
本文介绍了在冒号后加入行(perl)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这行:

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

我想将只包含一个单词后跟冒号的行与不包含冒号的行连接起来:

I want to join line contains only a word followed by colon with lines that do not contain colon:

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

推荐答案

这应该和 RCs 代码一样,但要短一些:

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

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

这篇关于在冒号后加入行(perl)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆