2016-10-05 4 views
0

100mil 행 * .gz 파일의 행 간격을 어떻게 반환합니까?압축 파일에서 간격/행 범위를 추출하는 방법은 무엇입니까?

15mil에서 20mil까지 5mil 행이 필요하다고 가정 해 보겠습니다.

이 최고의 실적을 올리는 옵션입니까?

zcat myfile.gz|head -20000000|tail -500 
real 0m43.106s 
user 0m43.154s 
sys  0m9.259s 
+0

또는'zcat file | awk 'NR> 14999999 && NR <2000001 {if (NR> 20000001) exit}'> outfile'이 조금 빠를 수도 있습니다. – shellter

답변

1

매우 합리적인 옵션입니다. 라인이 얼마나 길어질 지 모르기 때문에 기본적으로 라인을 압축 해제하고 반복하여 라인 구분 기호가 어디에 있는지 파악해야합니다. 세 가지 도구 모두 상당히 많이 최적화되어 있으므로 I/O 및 압축 해제 시간이 중요하지 않습니다.

이론적으로 단일 실행 파일에 세 도구를 모두 결합한 솔루션을 롤링하면 IPC 비용이 약간 절감되지만 절약 효과는 무시할 수 있습니다.