부분 열 이름을 추출하여 새 열 만들기

부분 열 이름을 추출하여 새 열 만들기

다음과 같은 열이 있는 다음 행렬이 있습니다.

TRINITY_DN12001_c0_g1_i3^ARC3_ARATH^MORN    1.52    1.20    1.25
TRINITY_DN109651_c0_g1_i1   12.38   32.55   62.98   37.92   9.05
TRINITY_DN26469_c0_g1_i1    1.91    0.00    2.62    2.92    2.22

각 행에 대해 첫 번째 열(TRINITY_DN12001_c0_g1_i3)의 일부를 추출하고 해당 ID로 새 열을 만들고 싶습니다. 나는 새로운 매트릭스가 이전에서 추출된 ID만 가지고 본질적으로 동일하기를 원합니다. awk를 사용해야 할 것 같은데 이 숫자로 무엇을 해야 할지 모르겠습니다. 나는 그것이 다음과 같이 보이기를 원합니다 :

TRINITY_DN12001_c0_g1_i3 TRINITY_DN12001_c0_g1_i3^ARC3_ARATH^MORN 1.52 1.20 1.25 
TRINITY_DN109651_c0_g1_i1 TRINITY_DN109651_c0_g1_i1 12.38 32.55 62.98 37.92 9.05 
TRINITY_DN26469_c0_g1_i1 TRINITY_DN26469_c0_g1_i1 1.91 0.00 2.62 2.92 2.22

어떤 도움이라도 대단히 감사하겠습니다.

답변1

이 방법이 귀하에게 적합한지 알려주세요.

sed 's/\([^\^ ]*\)/\1 \1/' file | tr -s ' '

산출:

TRINITY_DN12001_c0_g1_i3 TRINITY_DN12001_c0_g1_i3^ARC3_ARATH^MORN 1.52 1.20 1.25
TRINITY_DN109651_c0_g1_i1 TRINITY_DN109651_c0_g1_i1 12.38 32.55 62.98 37.92 9.05
TRINITY_DN26469_c0_g1_i1 TRINITY_DN26469_c0_g1_i1 1.91 0.00 2.62 2.92 2.22

이는 예상되는 출력과 일치합니다.

TRINITY_DN12001_c0_g1_i3 TRINITY_DN12001_c0_g1_i3^ARC3_ARATH^MORN 1.52 1.20 1.25 
TRINITY_DN109651_c0_g1_i1 TRINITY_DN109651_c0_g1_i1 12.38 32.55 62.98 37.92 9.05 
TRINITY_DN26469_c0_g1_i1 TRINITY_DN26469_c0_g1_i1 1.91 0.00 2.62 2.92 2.22

관련 정보