我有一个文件有两列数据,如下所示
文件1:

1
13
1860
168 1488.1
320 1566.5
476 1625.2
640 1684
840 1762.3
1092    1909.2
1460    2075.6
1824    2183.3
2400    2291
3260    2467.3
4340    2682.7
5468    2907.9
8188    3309.3
1
13
1940
176 1503.1
348 1497.9
500 1586
640 1684
836 1821
1076    1938.5
1428    2075.6
1824    2183.3
2400    2291
3260    2467.3
4340    2682.7
5468    2907.9
8188    3309.3

输出应符合要求
输出:
1860    168 1488.1
1860    320 1566.5
1860    476 1625.2
1860    640 1684
1860    840 1762.3
1860    1092    1909.2
1860    1460    2075.6
1860    1824    2183.3
1860    2400    2291
1860    3260    2467.3
1860    4340    2682.7
1860    5468    2907.9
1860    8188    3309.3
1940    176 1503.1
1940    348 1497.9
1940    500 1586
1940    640 1684
1940    836 1821
1940    1076    1938.5
1940    1428    2075.6
1940    1824    2183.3
1940    2400    2291
1940    3260    2467.3
1940    4340    2682.7
1940    5468    2907.9
1940    8188    3309.3

最佳答案

您可以使用这个awk

awk 'NF==1{h=$1;next} {print h,$0}' file

输出:
1860 168 1488.1
1860 320 1566.5
1860 476 1625.2
1860 640 1684
1860 840 1762.3
1860 1092    1909.2
1860 1460    2075.6
1860 1824    2183.3
1860 2400    2291
1860 3260    2467.3
1860 4340    2682.7
1860 5468    2907.9
1860 8188    3309.3
1940 176 1503.1
1940 348 1497.9
1940 500 1586
1940 640 1684
1940 836 1821
1940 1076    1938.5
1940 1428    2075.6
1940 1824    2183.3
1940 2400    2291
1940 3260    2467.3
1940 4340    2682.7
1940 5468    2907.9
1940 8188    3309.3

关于linux - 将两列数据格式化为三列数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36881211/

10-10 14:12