나는 많은 중복 정보를 생성하는 프로그램을 가지고 있습니다. 에서 생성된 고유 행을 저장하고 싶지만 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
솔루션은 그렇지 않으므로 메모리 사용량이 문제인 경우 적절하지 않을 수 있습니다.