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