ファイルの内容をファイルに分割

ファイルの内容をファイルに分割

私は次のような巨大なファイルを持っています

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

おすすめ記事