我有一个非常大的制表符分隔的文本文件.文件中的许多行对于文件中的一列具有相同的值(称为列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中执行此操作?
谢谢.
我不确定它的效率如何,但快速简便的方法是利用文件重定向的工作方式awk:
awk '{ print >> $5 }' yourfile
Run Code Online (Sandbox Code Playgroud)
这会将每行(未修改)附加到以列命名的文件中5.根据需要调整.
这应该适用于您的规范
awk '{outFile=$2; print $0 > outFile}' BigManegyFile
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.