파일 [중복]에서 구문 분석된 매개변수 값을 기반으로 파일 내용을 다른 파일로 분할

파일 [중복]에서 구문 분석된 매개변수 값을 기반으로 파일 내용을 다른 파일로 분할

일반 파일에는 열로 구성되고 공백으로 구분된 데이터가 포함됩니다. 두 번째 필드의 값을 기반으로 이 초기 데이터 파일을 여러 다른 파일로 분할하고 싶습니다.

데이터 파일에는 54,242개의 행과 399개의 열이 있습니다. 데이터 구조는 다음과 같습니다.

SNP Chr Pos ID_01 ID_02 ...
rs01 1 200 AA BB ...
rs02 25 10 BA AA ...
rs03 1 30 AA BB ...
rs04 X 90 BB AA ...

내 출력에는 열 2에 file"${chr}"고유한 값이 $chr있는 만큼의 레코드(또는 행)가 포함되어야 합니다. 예를 들어:

파일 11두 번째 필드가 다음과 같은 모든 레코드를 포함합니다.

SNP Chr Pos ID_01 ID_02 ...
rs01 1 200 AA BB ...
rs03 1 30 AA BB ...

문서 2525두 번째 필드가 다음과 같은 모든 레코드를 포함합니다.

SNP Chr Pos ID_01 ID_02 ...
rs02 25 10 BA AA ...

등...

답변1

그리고 awk:

awk 'FNR==1 { hdr = $0; next }                     
    {
        if(!f[$2]) { print hdr >"file" $2; f[$2] = 1 }
        print >>"file" $2
    }' data.txt

관련 정보