将文件内容拆分为文件

将文件内容拆分为文件

我有一个巨大的文件,例如

chr1    1    G    300
chr1    2    A    500
chr1    3    C    200
chr4    1    T    35
chr4    2    G    400
chr4    3    C    435
chr3    1    G    300
chr3    2    A    500
chr3    3    C    200
chr3    1    T    35
chr3    2    G    400
chr6    3    C    435
chr6    4    A    223
chr6    5    T    400
chr6    6    G    300

我通过对第一列值进行分组来将文件拆分为多个文件,例如

文件1.txt

chr1 1 G 300
chr1 2 A 500
chr1 3 C 200

文件3.txt

chr3 1 G 300
chr3 2 A 500
chr3 3 C 200
chr3 1 T 35
chr3 2 G 400

答案1

Awk解决方案:

awk '{ print > ("file" substr($1, 4) ".txt") }' file
  • substr($1, 4)$1-从位置开始的第一个字段值中提取子字符串4

查看结果:

$ head file[0-9]*.txt
==> file1.txt <==
chr1    1    G    300
chr1    2    A    500
chr1    3    C    200

==> file3.txt <==
chr3    1    G    300
chr3    2    A    500
chr3    3    C    200
chr3    1    T    35
chr3    2    G    400

==> file4.txt <==
chr4    1    T    35
chr4    2    G    400
chr4    3    C    435

==> file6.txt <==
chr6    3    C    435
chr6    4    A    223
chr6    5    T    400
chr6    6    G    300

相关内容