在bash中将文本文件中的多行合并为1行

时间:2017-10-24 03:25:29

标签: bash shell solaris

我有一个带有以下模式的文本文件。

Heading A
 zone zonename1;
 zone zonename2;
 zone zonename3;

Heading B
 zone zonename4;
 zone zonename5;

期望输出:

  zone zonename1;Heading A;
  zone zonename2;Heading A;
  zone zonename3;Heading A;
  zone zonename4;Heading B;
  zone zonename5;Heading B;

搜索单词" zone"并获得相应的标题。

1 个答案:

答案 0 :(得分:0)

以下awk随时为您提供帮助。在Solaris / SunOS系统上,将awk更改为/usr/xpg4/bin/awk/usr/xpg6/bin/awknawk

awk '/^Heading/{val=$0;next} NF{print $0,val";"}'  Input_file

输出如下。

 zone zonename1; Heading A;
 zone zonename2; Heading A;
 zone zonename3; Heading A;
 zone zonename4; Heading B;
 zone zonename5; Heading B;