누락된 값이 있는 문자열 삽입

누락된 값이 있는 문자열 삽입

일부 행의 특정 열에 일부 값이 누락되어 수신한 텍스트 파일을 편집하는 데 문제가 있습니다. 예를 들어 파일은 (대부분) 다음과 같습니다.

ID10    dad    prbM    ATGD
ID11    mom    prbF    CDSF
ID12    mom        CGDS
ID13    dad    prbF    FSDD
ID14    mom        FDSF

보시다시피 때로는 prb모든 항목을 사용할 수 없는 경우가 있습니다. 항목이 존재하지 않을 때 두 개의 탭이 분리되어 있는 것을 발견했습니다. 탭 사이에 문자열을 삽입하는 방법이 있나요? 예를 들어 다음과 같습니다.

ID10    dad    prbM    ATGD
ID11    mom    prbF    CDSF
ID12    mom    none    CGDS
ID13    dad    prbF    FSDD
ID14    mom    none    FDSF

답변1

awk필드가 실제로 탭으로 구분되어 있다고 가정하고 를 사용하세요 .

awk -F '\t' -v OFS='\t' '$3 == ""{$3 = "none"};1' input.txt

이것:

  1. 입력 필드 구분 기호를 단일 탭으로 설정( -F '\t')
  2. 출력 필드 구분 기호를 탭( -v OFS='\t') 으로 설정
  3. 세 번째 필드가 비어 있는지 확인 $3 == ""하고( ) 비어 있으면 문자열로 설정합니다."none"
  4. 그리고 항상 line( 1)을 인쇄하세요.

관련 정보