ファイルの列のマージ

ファイルの列のマージ

一部のデータのフォーマットを調整する必要がありますが、それを簡単に変更する方法があるかどうかはわかりません。 2つのデータ要素の間に「/」を使用して、2つのデータ列を1つの列にマージする必要があります。

入力する

Known Mother    
5 babies                                                                                                                                    
3 Loci                                                               
Mom             314     322     249     261     342     346                 
2_1_2011        314     314     249     257     342     346        
2_17_2011       314     314     257     261     346     346        
2_26_2011       314     314     257     261     342     346   
2_30_2011       314     314     257     261     342     342   
2_5_2011        314     314     249     257     342     342

希望の出力

Known Mother    
5 babies                                                                                                                                    
3 Loci                                                               
Mom             314/322     249/261     342/346                  
2_1_2011        314/314     249/257     342/346        
2_17_2011       314/314     257/261     346/346        
2_26_2011       314/314     257/261     342/346   
2_30_2011       314/314     257/261     342/342   
2_5_2011        314/314     249/257     342/342

これらのファイルには、上記の例に示されているよりも多くのデータ(合計144ファイル)が含まれています。手動でExcelを編集せずに上記の修正を実行する方法に関する提案がある場合は、大変感謝します。

ベストアンサー1

この質問には2つの部分があります。

  • 説明するように変換する必要がある行を決定します(たとえば、「7列の行」など)。
  • 変換の実行

Awkを使用してこれを行う1つの方法は次のとおりです。

awk 'NF == 7 { print $1, $2 "/" $3, $4 "/" $5, $6 "/" $7 }
     NF != 7 { print }' input.txt

出力:

Known Mother
5 babies
3 Loci
Mom 314/322 249/261 342/346
2_1_2011 314/314 249/257 342/346
2_17_2011 314/314 257/261 346/346
2_26_2011 314/314 257/261 342/346
2_30_2011 314/314 257/261 342/342
2_5_2011 314/314 249/257 342/342

おすすめ記事