在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,欢迎你,很高兴它帮助了你,继续学习,继续分享知识,干杯。但它也在增加其他方面的内容。一旦空线被抓住,它应该停止。有什么建议吗?