행 값으로 파일 필터링

행 값으로 파일 필터링

첫 번째 열에 특정 문자가 있고 첫 번째 열에 특정 값보다 큰 숫자가 있는 행을 선택해야 합니다.

특히, "G"가 포함된 첫 번째 열을 선택해야 합니다.숫자보다 낫다50다음과 같이:

입력 파일:

764M    qa11279_TPK0002730_50901083/
762M    qa10589_TPK0002730_50796634/
11G     qa17805_TPK0001664_51330191/
56G     qa15384_TPK0001664_51232746/
140G    qa29996_TPK0000949_51951816/

결과물 파일:

56G     qa15384_TPK0001664_51232746/
140G    qa29996_TPK0000949_51951816/

답변1

해결책 awk:

$ awk -F' ' '$1 ~ /^[0-9]*G/ { sub(/G/, "", $1); if(+$1 > 50) print }' file 
56 qa15384_TPK0001664_51232746/
140 qa29996_TPK0000949_51951816/

답변2

예제 입력에 표시된 것처럼 "G"는 첫 번째 열에만 나타나기 때문에:

$ awk '/G/ && ($1+0 > 50)' file
56G     qa15384_TPK0001664_51232746/
140G    qa29996_TPK0000949_51951816/

하지만 다른 영역에서도 이런 일이 발생할 수 있다면 다음과 같이 하세요.

$ awk '($1 ~ /G/) && ($1+0 > 50)' file
56G     qa15384_TPK0001664_51232746/
140G    qa29996_TPK0000949_51951816/

답변3

@αГsнιι의 의견을 바탕으로 비교가 수정되었습니다.

awk '$1 ~ /^[[:digit:]]+/ && $1 ~ /G$/ && $1+0 > 50' file
56G   qa15384_TPK0001664_51232746/
140G  qa29996_TPK0000949_51951816/

관련 정보