지정된 정확한 길이의 레코드를 찾는 방법

지정된 정확한 길이의 레코드를 찾는 방법

UNIX에는 100000개의 레코드가 포함된 파일이 있습니다. 레코드 길이 = 1000으로 레코드를 필터링하려고 합니다.

레코드 길이가 1000보다 크면 최종 페널티에서 해당 레코드를 무시하려고 합니다. 다음 명령을 시도했지만 작동하지 않습니다

grep -x '.\{1000,1000\}' File

답변1

awk를 사용하여 1000자의 레코드만 인쇄할 수 있습니다.

awk 'length==1000' File

이는 다음과 정확히 동일합니다.

awk 'length($0)==1000{print $0}' File

기본적으로 awk는 조건이 충족되면 해당 줄을 인쇄합니다.

답변2

아마도 Awk는 그렇게 함으로써 이를 수행할 수도 있습니다.

awk 'length($0) == 1000' file

답변3

파이썬의 솔루션.

#!/usr/bin/env python

f = open('filename.log', 'r')
for line in f:
    if len(line) > 1000:
        continue
    else:
        # do the stuff
f.close()

관련 정보