通过列的值有效地将一个文件拆分为多个文件

1 python unix shell

我有一个非常大的制表符分隔的文本文件.文件中的许多行对于文件中的一列具有相同的值(称为列k).我想将此文件分成多个文件,将具有相同k值的条目放在同一个文件中.我怎样才能做到这一点?例如:

a foo
1 bar
c foo
2 bar
d foo
Run Code Online (Sandbox Code Playgroud)

应分成包含条目"a foo"和"c foo"和"d foo"的文件"foo"以及包含条目"1 bar"和"2 bar"的名为"bar"的文件.

我怎样才能在shell脚本或Python中执行此操作?

谢谢.

Ben*_*son 8

我不确定它的效率如何,但快速简便的方法是利用文件重定向的工作方式awk:

awk '{ print >> $5 }' yourfile
Run Code Online (Sandbox Code Playgroud)

这会将每行(未修改)附加到以列命名的文件中5.根据需要调整.


she*_*ter 7

这应该适用于您的规范

awk '{outFile=$2; print $0 > outFile}' BigManegyFile
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.