탭으로 구분된 파일에서 특정 줄 제거 [닫기]

탭으로 구분된 파일에서 특정 줄 제거 [닫기]

6개의 열이 있는 탭으로 구분된 파일이 있지만 일부 행은 다음과 같이 표시되지 않습니다. 여기에 이미지 설명을 입력하세요.

내 파일에는 7행처럼 이와 같은 행이 많이 있습니다. 내가 글을 쓸 때

awk '{print $1"\t"$2"\t"$3"\t"$5"\t"$6}' filename

그것은 여전히 ​​​​보존되어 있습니다. 이러한 항목을 제거하려면 어떻게 해야 합니까? 도와주세요.

답변1

시도의 문제점은 입력 파일의 각 행의 처음 6개 열만 표준 출력으로 인쇄한다는 것입니다. 지정된 행에 열 수가 더 적으면 awk누락된 열은 "비어 있음"으로 해석되므로 행 7의 출력은 실제로 다음과 같아야 합니다.

chr1 \t 290338 \t 290378 \t NS500455:80:HG7TMBGXB:$:13404:14651:1128 \t + \t \n

(가독성을 위해 주변 공간을 추가했습니다 \t. 끝에 "빈" 열이 있음을 참고하세요).

열 수를 기준으로 잘못된 행을 필터링하려면 다음을 시도해 보세요.

awk -F'\t' -v OFS='\t' 'NF==6' file.txt > output.txt

6개 필드(= 열)가 있는 행만 인쇄됩니다.

관련 정보