1

列ごとに分割して、はるかに大きなファイルから多数のファイルを作成したいと考えています。たとえば、私の大きなファイルのヘッダーは次のようになります。

Name Chr Position SNP1A SNP1B SNP1C SNP2A SNP2B SNP2C SNP3A SNP3B SNP3C

これらのファイルを作成したい:

Name Chr Position SNP1A SNP1B SNP1C

Name Chr Position SNP2A SNP2B SNP2C

Name Chr Position SNP3A SNP3B SNP3C

私は awk を使用しようとしてきましたが、少し初心者なので、コマンドは現在次のようになっています。

for ((i=1; i<=440;i++)); do awk -f printindivs.awk inputfile done

printindivs.awk の場所: {print $1 $2 $3 $((3*$i)+1) $((3*$i)+2) $((3*$i)+3))}

私が得ている出力は、3 つのセットを取得しようとする私の方法が間違っていることを示唆しています: どうすればこれを行うことができますか?

ありがとう

4

1 に答える 1

2

awkこれは簡単なスクリプトで簡単に実行できます。

$ awk '{for(i=4;i<=NF;i+=3)print $1,$2,$3,$i,$(i+1),$(i+2) > ("out"++j)}' file

出力ファイルは次の場所にありますout[1..n]

$ cat out1
Name Chr Position SNP1A SNP1B SNP1C

$ cat out2
Name Chr Position SNP2A SNP2B SNP2C

$ cat out3
Name Chr Position SNP3A SNP3B SNP3C
于 2013-07-31T13:54:31.383 に答える