Como anexar uma string à primeira coluna de um arquivo de matriz?

2

Eu tenho um arquivo de matriz como segue. A primeira coluna é uma lista de nomes. Quero adicionar _i1 ao final de cada nome.

        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    

O resultado desejado é assim:

   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 

Como posso fazer isso?

    
por Anna 20.03.2016 / 18:47

2 respostas

0

Eu usaria 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

Ou, se você precisar manter o espaço em branco inalterado, 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    
    
por 20.03.2016 / 19:16
-1

Eu achei que seria o primeiro espaço em branco:

 sed 's/\s/_i1\t/' test.txt
    
por 20.03.2016 / 19:00