5つのフィールド(5番目のフィールド幅= 200000値[0と1])を持つ遺伝子型ファイルがあります。
MA,30009,4,4,000010000111101011111000110100000000 .......
ME,30067,3,2,000010000111101011111000110100000000 .......
MI,30032,7,8,000010000111101011111000110100000000 .......
最後のフィールドを2つの値ごとに複数の列に分割したい(ncol = 100000)。出力が次のようになります。
MA,30009,4,4,00,00,10,00,01,11,10,10,11,11,10,00,11,01,00,00,00,00 .......
ME,30067,3,2,00,00,10,00,01,11,10,10,11,11,10,00,11,01,00,00,00,00 .......
MI,30032,7,8,00,00,10,00,01,11,10,10,11,11,10,00,11,01,00,00,00,00 .......
え?世話をする医者? sed?
助けが必要ですか?事前にありがとう
ベストアンサー1
awk 'BEGIN{FS=OFS=","}{gsub(/../,"&,",$NF)}1' file
BEGIN{FS=OFS=","}
フィールド区切り記号をに設定します,
。{gsub(/../,"&,",$NF)}
,
最後のフィールド()$NF
で2文字ごとに追加されます。1
結果行を印刷します。
結果:
MA,30009,4,4,00,00,10,00,01,11,10,10,11,11,10,00,11,01,00,00,00,00,
上記のコマンドで生成された末尾のカンマを削除するには、アドインを使用してsub
削除します。
awk 'BEGIN{FS=OFS=","}{gsub(/../,"&,",$NF);sub(/,$/,"",$NF)}1' file
MA,30009,4,4,00,00,10,00,01,11,10,10,11,11,10,00,11,01,00,00,00,00