2012-11-16 5 views
10

파일에서 텍스트를로드 한 다음 필드 중 하나에 따라 필터를 적용하는 프로그램이 있습니다. 내가 관심있는 부분은이 필터링 단계 이후의 데이터 크기입니다. , awk '$2>=10' <myfile | du -du와 pipe를 사용하여 stdin의 "크기"를 계산하십시오.

난 그냥 필터를 적용하고 어딘가에 출력을 저장할 수있는, 거기에 뒤 전화를하고 파일을 삭제할 수 있지만 파일이 매우 큰 :

이상적으로는, 내가 좋아하는 뭔가를 할 수있을 것 그래서 디스크에 쓰기에는 약간의 시간이 걸릴 수 있습니다.

du이 "디스크 사용"의 약자라는 것을 알고, 나는 프로그램이 어떻게 작동하는지 감안할 때, 뭔가 의미있는 것이 없다고 생각합니다. 이 작업을 수행하는 또 다른 공용 유틸리티가 있다면 제안하십시오!

답변

17

wc -c으로 파이프하여 파이프 라인을 통과하는 바이트 수를 계산할 수 있습니다.

4

du은 "디스크 사용량"을 나타냅니다. 파이프의 데이터는 디스크에 기록되지 않으므로 작업 할 "뒤"가 없습니다. 대신 wc을 사용하십시오. 이는 "단어 수"입니다.

awk '$2>=10' < myfile | wc -c 

-c 플래그의 바이트 수입니다.