행렬 파일의 첫 번째 열에 문자열을 추가하는 방법은 무엇입니까?

행렬 파일의 첫 번째 열에 문자열을 추가하는 방법은 무엇입니까?

다음과 같은 매트릭스 파일이 있습니다. 첫 번째 열은 목록입니다. _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    

답변2

나는 첫 번째 공백과 일치한다고 생각합니다.

 sed 's/\s/_i1\t/' test.txt

관련 정보