我是python的新手。我的要求很简单,如果我必须使用awk进行操作,则如下所示,
下面提到的文件(test.txt)用制表符分隔,
1 a b c
1 a d e
1 b d e
2 a b c
2 a d e
3 x y z
我想要的输出
文件1.txt应具有以下值
a b c
a d e
b d e
文件2.txt应具有以下值
a b c
a d e
文件3.txt应具有以下值
x y z
原始文件在第一列上排序。我不知道必须拆分的行号。它必须取决于价值的变化。使用awk,我会这样写
awk -F"\t" 'BEGIN {OFS="\t";} {print $2","$3","$4 > $1}' test.txt
(性能明智,python会更好吗?)
最佳答案
Awk非常适合此操作,应该快很多。速度真的是一个问题吗,您的投入有多大?
$ awk '{print $2,$3,$4 > ("file"$1)}' OFS='\t' file
演示:
$ ls
file
$ cat file
1 a b c
1 a d e
1 b d e
2 a b c
2 a d e
3 x y z
$ awk '{print $2,$3,$4 > ("file"$1)}' OFS='\t' file
$ ls
file file1 file2 file3
$ cat file1
a b c
a d e
b d e
$ cat file2
a b c
a d e
$ cat file3
x y z
关于python - 在值更改时使用python拆分排序的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18495920/