1

我正在重新格式化一些丑陋的数据,这些数据以 xml 和各种其他垃圾形式开始并归结为这一点,但我无法完成这项工作。

我想转:

    BPSD-41 
    Admin Summary: Page does not finish loading

    BPSD-49 
    Mobile: Activity Section: Does not finish loading

    BPSD-50 
    Fix bug in staging

进入这个:

    BPSD-41 : Admin Summary: Page does not finish loading

    BPSD-49 : Mobile: Activity Section: Does not finish loading

    BPSD-50 : Fix bug in staging

我敢打赌有一个非常优雅的 awk 解决方案,但我找不到它......

4

3 回答 3

0

您可以执行以下操作

BEGIN {
    flag = 0;
}

{
    if (flag == 0) {
        save = $0;
        flag = 1;
    } else {
        printf("%s : %s\n", save, $0);
        flag = 0;
    }
}

请注意,我尚未对此进行测试,但应该可以使用一些接近的方法。

于 2013-04-18T23:02:51.823 回答
0

这是一个跳过空行的单行

/[^\r\n]/{ printf("%s%s", $0, i++ % 2 ? "\n" : " : "); }
于 2013-04-18T23:12:00.003 回答
0

您可以使用此 awk 命令连接 2 行:

awk 'NF>0{printf $0; getline; print $0}' inFile

或使用 sed:

sed -i.bak 'N;s/\n/\;/' inFIle
于 2013-04-18T23:06:32.337 回答