一般ファイルには、列で構成され、スペースで区切られたデータが含まれています。 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
あるだけのレコード(または行)を含める必要があります。たとえば、
ファイル11
2番目のフィールドには、次のすべてのレコードが含まれています。
SNP Chr Pos ID_01 ID_02 ...
rs01 1 200 AA BB ...
rs03 1 30 AA BB ...
文書 2525
2番目のフィールドには、次のすべてのレコードが含まれています。
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