python - 根据列的值有效地将一个文件拆分成多个文件

标签 python shell unix

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

a foo
1 bar
c foo
2 bar
d foo

应拆分为包含条目“a foo”、“c foo”和“d foo”的文件“foo”和包含条目“1 bar”和“2 bar”的名为“bar”的文件。

我如何在 shell 脚本或 Python 中执行此操作?

谢谢。

最佳答案

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

awk '{ print >> $5 }' yourfile

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

关于python - 根据列的值有效地将一个文件拆分成多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305132/

相关文章:

python - 查找所有组值为 nan 的行

windows - 在 Windows 中使用 grep、sed、awk 进行 Shell

linux - 如何使用 AWK 合并两个文件?

linux - 使用Openssl读取多个证书

linux - 在 mac OS X 中使用 "\r\n"时会发生什么?

linux - 连接 :Direct From Linux server to Unix

python - 相当于 pandas 中的 fct_lump

python - 如何在没有 pip 和 brew 的 ssh hadoop 系统(沙箱)上安装 python 3?

python - 在Python中替换部分字符串?

git - 加速 bash 脚本将 git repo 转换为 LFS