行列ファイルの最初の列に文字列を追加するには?

行列ファイルの最初の列に文字列を追加するには?

次のマトリックスファイルがあります。最初の列はリストです。_i1各名前の末尾に追加したいです。

        A1A A1B A1C A1D A1E 
TR6764_c0_g2    0.00    0.02    0.00    0.00    0.00   
TR25644_c0_g1   0.00    0.00    0.00    0.00    0.00   
TR4897_c0_g1    58.50   177.26  130.35  8.52    102.66  
TR900_c0_g2     0.00    0.00    0.00    0.00    0.00    

必要な結果は次のとおりです。

   A1A A1B A1C A1D A1E
TR6764_c0_g2_i1    0.00    0.02    0.00    0.00    0.00   
TR25644_c0_g1_i1   0.00    0.00    0.00    0.00    0.00   
TR4897_c0_g1_i1    58.50   177.26  130.35  8.52    102.66  
TR900_c0_g2_i1     0.00    0.00    0.00    0.00    0.00 

どうすればいいですか?

ベストアンサー1

私は以下を使用しますawk

$ awk 'NR>1{$1=$1"_i1"}1;' test.txt 
        A1A A1B A1C A1D A1E 
TR6764_c0_g2_i1 0.00 0.02 0.00 0.00 0.00
TR25644_c0_g1_i1 0.00 0.00 0.00 0.00 0.00
TR4897_c0_g1_i1 58.50 177.26 130.35 8.52 102.66
TR900_c0_g2_i1 0.00 0.00 0.00 0.00 0.00

または、スペースを残す必要がある場合はPerlを使用してください。

$ perl -pe 's/\s/_i1$&/ if $.>1' test.txt 
        A1A A1B A1C A1D A1E 
TR6764_c0_g2_i1    0.00    0.02    0.00    0.00    0.00   
TR25644_c0_g1_i1   0.00    0.00    0.00    0.00    0.00   
TR4897_c0_g1_i1    58.50   177.26  130.35  8.52    102.66  
TR900_c0_g2_i1     0.00    0.00    0.00    0.00    0.00    

おすすめ記事