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