상태 저장 고유 함수

상태 저장 고유 함수

나는 많은 중복 정보를 생성하는 프로그램을 가지고 있습니다. 에서 생성된 고유 행을 저장하고 싶지만 stdout다음과 같이 여러 단계를 거쳐 저장할 수는 없습니다. ./prog > out cat out | sort | uniq > out2

out파일이 너무 큽니다. stateful_uniq행이 소비되고 이전에 볼 수 없었던 행만 내보내는 "상태 저장 고유" 기능을 어떻게 구현할 수 있습니까 ?

답변1

./prog | sort | uniq > out2하고 싶은 일을 못하고 있나요 ? 아니면 ./prog | sort -u > out2지지 sort한다고 해도...

출력을 정렬하지 않고 나타나는 고유 행을 보려면 연관 배열을 사용할 수 있습니다 awk.

./prog | awk '!(count[$0]++)'

지적한대로스티븐 차제라스, sort임시 파일을 사용하여 메모리 사용량을 제한합니다. 이 awk솔루션은 그렇지 않으므로 메모리 사용량이 문제인 경우 적절하지 않을 수 있습니다.

관련 정보