Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash中将文本文件中的一行与多行合并_Bash_Shell_Solaris - Fatal编程技术网

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

在bash中将文本文件中的一行与多行合并,bash,shell,solaris,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 zo

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

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”并获得相应的标题。

下面的awk在这里帮助您。在Solaris/SunOS系统上,将
awk
更改为
/usr/xpg4/bin/awk
/usr/xpg6/bin/awk
,或
nawk

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;

awk:第1行附近的语法错误awk:在第1行附近退出获取此信息error@RadhikaKandasamy,在Solaris/SunOS系统上,将awk更改为/usr/xpg4/bin/awk、/usr/xpg6/bin/awk或nawk\Working。谢谢:)@RadhikaKandasamy,欢迎你,很高兴它帮助了你,继续学习,继续分享知识,干杯。但它也在增加其他方面的内容。一旦空线被抓住,它应该停止。有什么建议吗?