在 bash 中的文本文件中将 1 行与多行合并
Merge 1 line with multiple lines in a text file in bash
我有一个具有以下模式的文本文件。
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=[=10=];next} NF{print [=10=],val";"}' Input_file
输出如下。
zone zonename1; Heading A;
zone zonename2; Heading A;
zone zonename3; Heading A;
zone zonename4; Heading B;
zone zonename5; Heading B;
我有一个具有以下模式的文本文件。
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=[=10=];next} NF{print [=10=],val";"}' Input_file
输出如下。
zone zonename1; Heading A;
zone zonename2; Heading A;
zone zonename3; Heading A;
zone zonename4; Heading B;
zone zonename5; Heading B;