열 불일치 및 교체

열 불일치 및 교체

input.txt(탭으로 구분)

TTTTOTTT00000000008  RTTTT899      5.00E-28
TTTTOTTT00000000046  RTTTWRR       3.00E-31
TTTTOTTT00000000051  2.00E-11
TTTTOTTT00000000051  7.00E-12
TTTTOTTT00000000054  5.00E-22
TTTTOTTT00000000061  YTRYR         1.00E-11
TTTTOTTT00000000078  ETNRR8        6.00E-17
TTTTOTTT00000000174  TYTYT         1.00E-11
TTTTOTTT00000000203  UUUE          9.00E-20

내 파일 열이 섞여 있습니다. 이 파일(input.txt)에 있습니다. 3열에는 공백이 있습니다. 열은 2열 행으로 채워야 하며, 2열 행은 없음으로 바꿔야 합니다.

.txt 출력(탭으로 구분)

TTTTOTTT00000000008  RTTTT899      5.00E-28
TTTTOTTT00000000046  RTTTWRR       3.00E-31
TTTTOTTT00000000051  none          2.00E-11
TTTTOTTT00000000051  none          7.00E-12
TTTTOTTT00000000054  none          5.00E-22
TTTTOTTT00000000061  YTRYR         1.00E-11
TTTTOTTT00000000078  ETNRR8        6.00E-17
TTTTOTTT00000000174  TYTYT         1.00E-11
TTTTOTTT00000000203  UUUE          9.00E-20

답변1

awk -v 'OFS=\t' 'NF == 2 { print $1, "none", $2; next } 1' input.txt > output.txt

입력 파일의 특성에 따라 조정하십시오. 필드가 2개만 있는 모든 행에는 "없음"이 삽입되어야 한다고 가정합니다. 그렇지 않으면 다른 모든 행은 변경되지 않은 채 통과됩니다( 1최종 목표).

답변2

awk -v OFS="\t" 'NF==2{$2="none\t"$2}1' test_in.txt

수정된 행에 대해 별도의 인쇄 문을 제공하는 대신 필요한 경우 필드를 패치하고 동일한 문으로 인쇄되도록 수정된 행을 스트리밍합니다.

관련 정보