![파일의 처음 몇 줄을 읽는 데 시간이 오래 걸리는 이유는 무엇입니까?](https://linux55.com/image/6989/%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EC%B2%98%EC%9D%8C%20%EB%AA%87%20%EC%A4%84%EC%9D%84%20%EC%9D%BD%EB%8A%94%20%EB%8D%B0%20%EC%8B%9C%EA%B0%84%EC%9D%B4%20%EC%98%A4%EB%9E%98%20%EA%B1%B8%EB%A6%AC%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
33GB 정도의 거대한 텍스트 파일이 있는데 크기 때문에 파일 구성 방식을 이해하기 위해 파일의 처음 몇 줄만 읽어보고 싶습니다. 시도했지만 head
실행을 완료하는 데 오랜 시간이 걸렸습니다. UNIX에서는 head
작업을 수행하기 전에 전체 파일을 실행해야 하기 때문입니까 ? 그렇다면 해당 파일의 일부를 표시하는 더 빠른 방법이 있습니까?
답변1
이것은 실제로 귀하의 질문에 대답하지 않습니다. 속도가 느려지는 이유 head
는 다음과 같습니다.줄리 펠레티에답변: 파일에는 개행 문자가 전혀(또는 다수) 포함되어 있지 않으므로 head
표시하려는 행을 찾으려면 파일을 많이 읽어야 합니다. head
물론 작업을 수행하기 전에 전체 파일을 읽을 필요는 없으며 요청한 줄 수에 도달하면 읽기가 중지됩니다.
개행과 관련된 속도 저하를 피하거나 특정 줄 수를 보는 데 신경 쓰지 않는 경우 파일의 시작 부분을 보는 빠른 방법은 dd
예를 들어 처음 100바이트를 보는 것 입니다 hugefile
.
dd if=hugefile bs=100 count=1
또 다른 옵션이 제공됩니다.GNU 헤드/테일은 왜 전체 파일을 읽나요?, -c
다음 옵션을 사용합니다 head
.
head -c 100 hugefile
답변2
head
내가 이런 일이 일어나는 것을 본 유일한 경우는 파일에서 필요한 수의 줄만 읽었 기 때문에 파일에 개행 문자가 없을 때였습니다 .