【发布时间】:2019-02-20 14:48:42
【问题描述】:
我正在为此苦苦挣扎,我想将一组行连接成一行/一行。 我的文件的每一行 (titi/toto/tata) 都有 2 或 3 个字段,用“;”分隔 所以我的输入是这样的:
titi1
titi2
titi3
43;75;97
1;2;87
toto1
toto2
toto3
40;50;60
tata1
tata2
tata3
4;5;2
5;3;7
2;5;9
我需要这个输出:
titi1;titi2;titi3;43;75;97
titi1;titi2;titi3;1;2;87
toto1;toto2;toto3;40;50;60
tata1;tata2;tata3;4;5;2
tata1;tata2;tata3;5;3;7
tata1;tata2;tata3;2;5;9
您是否可以看到前 3 行是信息(toto/tata 等...),之后的每一行都应重复以数字开头。
首先我的输入只有一行数字,所以它是一个 4 x 4 的分组。所以我在论坛中搜索了我是否找到了一个示例并使用这样的 getline 做到了这一点:
awk '{getline b; getline c; getline d;printf("%s %s %s %s\n",$0,b,c,d)}'
但后来我开始有 2 甚至 3 与数字对齐... 所以我正在努力做一个“条件”,它明白每次看到以数字开头的 lign 时它都应该重复前 3 lign。
【问题讨论】:
-
谢谢,我马上去看看。