![대용량 텍스트 파일에서 여러 단어를 바꾸는 데 sed 또는 awk 중 어느 것이 가장 좋습니까? [폐쇄]](https://linux55.com/image/209431/%EB%8C%80%EC%9A%A9%EB%9F%89%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%97%AC%EB%9F%AC%20%EB%8B%A8%EC%96%B4%EB%A5%BC%20%EB%B0%94%EA%BE%B8%EB%8A%94%20%EB%8D%B0%20sed%20%EB%98%90%EB%8A%94%20awk%20%EC%A4%91%20%EC%96%B4%EB%8A%90%20%EA%B2%83%EC%9D%B4%20%EA%B0%80%EC%9E%A5%20%EC%A2%8B%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
큰 텍스트 파일에 바꾸고 싶은 단어 목록이 있습니다. 이 작업을 수행하는 데 가장 적합한 sed/awk 명령이 무엇인지 알고 싶습니다. sed/awk는 텍스트 파일을 한 줄씩 읽나요, 아니면 전체 파일을 메모리에 로드하나요?
답변1
대답은 분명합니다.때에 따라 다르지.
"최고"를 어떻게 정의하느냐에 따라 다릅니다. 서둘러요? 쓰기가 더 쉽나요? 읽다? 유지하다? 더 휴대하기 좋나요? 좀 더 우아하게?
특정 작업에 따라 다릅니다.
sed
r-31415가 의견에서 주장한 것처럼 일반적으로 더 빠를 수 있지만 대체가 정의되는 방식(단어가 어떻게 제한되는지, 단어의 일부가 일치할 수 있는지)에 따라 제한된 가능성으로 인해sed
약간의 조작이 필요할 수 있습니다awk
.구현에 따라 다릅니다. 두 명령 모두 교체를 위해 정규식을 사용하여 한 줄씩 작동하므로 정규식 엔진이 실행 속도를 결정할 가능성이 높습니다. 얼마나 최적화되어 있나요? 미리 컴파일된 모드를 사용합니까? 실행 중인 하드웨어에 따라 달라질 수도 있습니다! BSD 구현은 ARM에서 더 빠르게 실행되고 GNU 구현은 AMD64에서 더 빠르게 실행됩니다.
반대 질문을 하나 드리겠습니다. 왜 알고 싶으십니까?