일부 행의 특정 열에 일부 값이 누락되어 수신한 텍스트 파일을 편집하는 데 문제가 있습니다. 예를 들어 파일은 (대부분) 다음과 같습니다.
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
이것:
- 입력 필드 구분 기호를 단일 탭으로 설정(
-F '\t'
) - 출력 필드 구분 기호를 탭(
-v OFS='\t'
) 으로 설정 - 세 번째 필드가 비어 있는지 확인
$3 == ""
하고( ) 비어 있으면 문자열로 설정합니다."none"
- 그리고 항상 line(
1
)을 인쇄하세요.