grep/sed/awk는 매우 큰 파일에서 얼마나 잘 작동합니까?

grep/sed/awk는 매우 큰 파일에서 얼마나 잘 작동합니까?

grep, sed 및 awk가 매우 큰 파일에서 데이터를 찾는 데 실행 가능한 도구인지 궁금합니다.

1TB 파일이 있다고 가정 해 보겠습니다. 해당 파일의 텍스트를 처리하려는 경우 개별 명령 grep, sed 및 awk를 사용하고 함께 혼합하면 시간 프레임이 어떻게 보일까요?

물론 하드웨어 사양에 따라 결과가 달라지기 때문에 구체적인 답변은 불가능하지만 일반적인 추정을 얻을 수 있다면 도움이 될 것입니다.

답변1

grep일반적으로 나는 가장 빠른 것이 sed가장 느린 것이라고 말하고 싶습니다 . 물론 이것은 정확히 무엇을 하고 있는지에 따라 다릅니다. awk보다 훨씬 빠르게 찾을 수 있습니다 sed.

실제 정규식이 필요하지 않고 단순한 고정 문자열(옵션 -F)만 필요하다면 grep 속도를 높일 수 있습니다.

파이프에서 grep, sed, awk를 함께 사용하려면 가능하면 grep 명령을 먼저 배치합니다.

예를 들면 다음과 같습니다.

grep -F "foo" file | sed -n 's/foo/bar/p'

일반적으로 다음보다 빠릅니다.

sed -n 's/foo/bar/p' file

grep첫 번째 줄 은 불필요해 보이지만.

LC_ALL=C그런데 간단한 ASCII 텍스트 파일을 다루는 경우에는 이러한 명령의 속도를 높일 수 있습니다 .

내 모든 경험은 gnu 명령을 기반으로 합니다. 다양한 구현을 시도하고 속도를 비교할 수도 있습니다.

관련 정보