【问题标题】:Split a text file according to data into multiple files in UnixUnix中根据数据将一个文本文件拆分成多个文件
【发布时间】:2015-05-27 01:42:55
【问题描述】:

假设输入文件按照第3列排序(条形码以“TCGA”开头):

Joe 1 TCGA-A8-A08L-01A-11W-A019-09 T
John 2 TCGA-A8-A08L-01A-11W-A019-09 T
Jack 3 TCGA-A8-CVDL-01A-11W-A019-09 T
Jane 4 TCGA-A8-CVDL-01A-11W-A019-09 F
Justin 5 TCGA-A8-E08L-01A-11W-A019-09 F
Jasmine 6 TCGA-A8-E08L-01A-11W-A019-09 T
Jacob 7 TCGA-A8-E08L-01A-11W-A019-09 T

我想将此文本拆分为关于第 3 列内容的新文件(仅输出第 1 列值):

文件-1:

Joe
John

文件-2:

Jack
Jane

文件 3:

Justin
Jasmine
Jacob

我怎样才能做到这一点?

编辑:文件的名称可以是任何名称。没问题。

【问题讨论】:

    标签: unix split


    【解决方案1】:

    我尝试了很多方法,例如使用拆分,为每个段添加前缀和后缀,跟踪前一行等,但有一个非常简单的解决方案,我一开始想不到:

    awk -F' ' '{print $1 > $3}' inputfile
    

    文件名将是第 3 列的内容。

    【讨论】:

    • 您的答案与您的问题不符(恕我直言),但很高兴您得到了您所需要的。请务必在 48 小时后接受您的回答(我认为),这样其他人就不会寻求解决这个问题。祝你好运。
    • 事实上,在这种情况下,我不在乎文件的名称,除了这个细节,它运行良好。如您所知,第 3 列的内容将是创建文件的名称,因此考虑到第 3 列的唯一性,第 1 列的内容将被分开。我不想限制文件的名称。我应该提一下,你是对的。谢谢。
    猜你喜欢
    • 2018-06-16
    • 2012-09-13
    • 2012-07-04
    • 2011-12-25
    • 1970-01-01
    • 2019-09-23
    • 2017-12-14
    • 1970-01-01
    相关资源
    最近更新 更多