Unix中根据数据将一个文本文件拆分成多个文件
Split a text file according to data into multiple files in Unix
假设输入文件按照第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
我怎样才能做到这一点?
编辑:文件名可以是任何名称。没问题。
我尝试了很多方法,例如使用拆分、为每个段添加前缀和后缀、跟踪上一行等等,但是有一个我一开始想不到的非常简单的解决方案:
awk -F' ' '{print > }' inputfile
文件名将是第 3 列的内容。
假设输入文件按照第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
我怎样才能做到这一点?
编辑:文件名可以是任何名称。没问题。
我尝试了很多方法,例如使用拆分、为每个段添加前缀和后缀、跟踪上一行等等,但是有一个我一开始想不到的非常简单的解决方案:
awk -F' ' '{print > }' inputfile
文件名将是第 3 列的内容。