ファイル[重複]で解析されたパラメータ値に基づいてファイルの内容を別のファイルに分割する

ファイル[重複]で解析されたパラメータ値に基づいてファイルの内容を別のファイルに分割する

一般ファイルには、列で構成され、スペースで区切られたデータが含まれています。 2番目のフィールドの値に基づいて、この初期データファイルをさまざまなファイルに分割したいと思います。

データファイルには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あるだけのレコード(または行)を含める必要があります。たとえば、

ファイル112番目のフィールドには、次のすべてのレコードが含まれています。

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

文書 25252番目のフィールドには、次のすべてのレコードが含まれています。

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

関連情報