我有一长串文本数据,就像这样:

apple
162
30.45%
newyork
red
2018-12-10  22:48
3.23
Nop12345
pear
20
14.56%
washington
green
2018-12-09  10:30
4.24
Nok45367


我希望它的制表符分隔如下,并且可以在excel中将其放在8列中:

apple   162 30.45%  newyork red 2018-12-10 12:48    3.23    Nop12345
pear    20  14.56%  washington  green   2018-12-09  10:30   4.24    Nok45367


我已经使用了命令

awk '{ ORS = (NR%8 ? "\t" : RS) } 1' > output.txt


为了处理这些问题,如果您在Windows附件记事本编辑器上看到结果,则输出就像我上面需要的结构一样,但是,事实是
是,当您使用notepad ++或Linux上的其他txt编辑器查看它时,它不是8列样式,更糟糕的是,如果将它放在excel中,则仅显示2列:

apple
    162
    30.45%
    newyork
    red
    2018-12-10 12:48
    3.23
    Nop12345
pear
    20
    14.56%
    washington
    green
    2018-12-09  10:30
    4.24
    Nok45367

最佳答案

您已经拥有的东西就是您想要做的正确方法:

$ awk '{ORS=(NR%8 ? "\t" : RS)}1' file
apple   162     30.45%  newyork red     2018-12-10  22:48       3.23    Nop12345
pear    20      14.56%  washington      green   2018-12-09  10:30       4.24   Nok45367


但请参见Why does my tool output overwrite itself and how do I fix it?,了解大多数“我的输出看起来很有趣”问题的来源。

关于python - 如何将一列数据(文本)包装成8列,并可以在Excel中以8列样式放置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53755972/

10-12 03:25