파일 내용을 파일로 분할

파일 내용을 파일로 분할

나는 다음과 같은 거대한 파일을 가지고 있습니다

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

관련 정보