简体   繁体   English

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

[英]Merge 1 line with multiple lines in a text file in bash

I have a text file with the following pattern.我有一个具有以下模式的文本文件。

Heading A
 zone zonename1;
 zone zonename2;
 zone zonename3;

Heading B
 zone zonename4;
 zone zonename5;

Desired Output:期望输出:

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

Search for the word "zone" and get the respective heading.搜索单词“zone”并获得相应的标题。

Following awk is here to help you.以下 awk 可以帮助您。 on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk , /usr/xpg6/bin/awk , or nawk在 Solaris/SunOS 系统上,将awk更改为/usr/xpg4/bin/awk/usr/xpg6/bin/awknawk

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

Output will be as follows.输出如下。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM