Sed 将行拆分为列

Sed 将行拆分为列,sed,tr,tabular,tab-delimited,Sed,Tr,Tabular,Tab Delimited,我有个问题。现在,一个本应以制表符分隔的文件缺少一些“换行符”。。。我的文件现在看起来像这样 Field1 Field2 Field3 Field1 Field2 Field3 Field1 Field2 Field3 Field1 Field2 Field3 Field1 Field2 Field3 Field1 Field2 Field3 Field1 Field2 Field3 Field1 Field2 Field3 Field1 Field2 Field3 Field1 Field2

我有个问题。现在,一个本应以制表符分隔的文件缺少一些“换行符”。。。我的文件现在看起来像这样

Field1 Field2 Field3
Field1 Field2 Field3 Field1 Field2 Field3 Field1 Field2 Field3
Field1 Field2 Field3 Field1 Field2 Field3
Field1 Field2 Field3
Field1 Field2 Field3 Field1 Field2 Field3
Field1 Field2 Field3
我想让它看起来统一,每个“field1”从一条新的线开始

Field1 Field2 Field3
Field1 Field2 Field3
Field1 Field2 Field3
Field1 Field2 Field3
Field1 Field2 Field3
问题是,这些列中的每一列都有一组独特的数据,因此我找不到一个熟悉的地方将其拆分为新行。非常感谢您的帮助

PS:在sed或tr中这样做将非常感谢
PS:最多可以有150列,而不仅仅是6或9列或3的任何其他倍数。这将适用于您给出的示例


sed-e的/\([^\t]*[^\t]*[^\t]*\)[\t]/\1\n/g'

这可能适合您:

sed 's/\s/\n/3;P;D' file
说明:

  • 第三个空白字符(空格或制表符)被换行符
    s/\s/\n/3

  • 打印第一个换行符之前的字符串
    p

  • 删除第一个换行符之前的字符串
    D

    D
    命令具有分裂的个性。如果没有换行符,则删除该字符串并读入下一行。但是,如果存在换行符,它将删除该字符串直到换行符,然后在同一字符串上开始循环,直到不存在换行符


如果你找不到拆分的地方,你怎么会认为一个不智能的拆分实用程序可以拆分呢?我希望有一种方法可以在每三个选项卡后拆分成一行,但是第5行在
Field3
Field1
之间没有分隔符。只有一些规则会有帮助吗?如果超过3列,请检查是否有6列或9列,并相应地添加新行。如果列数%3不是0,则需要手动检查?是时候返回数据提供程序了。祝你好运。如果你向我解释这个命令是如何工作的,我会给你最好的答案(顺便说一句)