100万以上の列と800行を含む大容量ファイルがあります。最初の行は、染色体名(Ha412HOChr01、Ha412HOChr02、.....Ha412HOChr17)と各染色体のSNP位置です。彼らは合計17の染色体を持っています。各染色体の列(Ha412HOCHr01、Ha412HOChr01、Ha412HOCHr01、....、Ha412HOCHr17)を抽出して別々のファイルに保存したいと思います。
"Ha412HOChr01:180159" "Ha412HOChr01:210724" "Ha412HOChr01:303270" "Ha412HOChr01:303280"....... "Ha412HOChr17:303402"
0 1 0 0 ......0
0 1 0 0 ......0
0 1 0 0 ......0
0 2 0 0 ......0
0 1 1 1 ......1
0 2 0 0 ......0
私が望む出力(例:染色体1):
out.chrom1
"Ha412HOChr01:180159" "Ha412HOChr01:210724" "Ha412HOChr01:303270" "Ha412HOChr01:303280"
0 1 0 0
0 1 0 0
0 1 0 0
0 2 0 0
0 1 1 1
0 2 0 0
0 0 0 0
0 2 0 0
0 1 2 2
答え1
フィールド区切り文字が空白の場合、Miller(https://github.com/johnkerl/miller)あなたは実行することができます
mlr --csv --fs " " cut -r -f "Ha412HOChr01:" input.txt
「Ha412HOCHr01」データのインポート
Ha412HOChr01:180159 Ha412HOChr01:210724 Ha412HOChr01:303270 Ha412HOChr01:303280
0 1 0 0
0 1 0 0
0 1 0 0
0 2 0 0
0 1 1 1
0 2 0 0
その後、forループを作成してすべてのファイルを作成できます。