누락된 값에 대한 문자열 삽입

누락된 값에 대한 문자열 삽입

일부 행에 대한 특정 열의 일부 누락된 값으로 인해 받은 텍스트 파일을 편집하는 데 몇 가지 문제가 발생했습니다. 예를 들어 파일의 모양은 다음과 같습니다(대부분).

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. 그리고 항상 ( ) 줄을 인쇄합니다 1.

관련 정보