我有 file1 看起来像这样:
0 0
0 1
0 8
ST1 2 3
5 2
2 2
ST3 4 3
4 2
5 5
ST5 1 9
1 5
7 8
所需的输出文件:
ST1 6 5 2
ST3 12 4 5
ST5 9 1 7
如何解决这个问题?我想用awk。我不知道如何编写算法,以便我可以处理这些行以使其看起来像所需的输出。
这个想法是我想找到模式(ST)并从那个点开始处理。
输出文件方案:ST*,column2 乘以我们有“ST”的行的第 3 列,“ST”下方的行的第 1 列,但直到下一个“ST”出现。
我也不想在第一个 ST* 之前处理任何内容。
与任何
awk
:假设每行有 2 个数字,您可以将记录分隔符 (
RS
) 设置为“ ST ”:输出:
注意:需要 GNU
awk
。处理此 pbm 的一种方法是
输出:
使用用于多字符 RS 和 RT 的 GNU awk 并假设每条记录始终有 3 行,如示例输入中所示: