대용량 텍스트 파일에서 여러 단어를 바꾸는 데 sed 또는 awk 중 어느 것이 가장 좋습니까? [폐쇄]

대용량 텍스트 파일에서 여러 단어를 바꾸는 데 sed 또는 awk 중 어느 것이 가장 좋습니까? [폐쇄]

큰 텍스트 파일에 바꾸고 싶은 단어 목록이 있습니다. 이 작업을 수행하는 데 가장 적합한 sed/awk 명령이 무엇인지 알고 싶습니다. sed/awk는 텍스트 파일을 한 줄씩 읽나요, 아니면 전체 파일을 메모리에 로드하나요?

답변1

대답은 분명합니다.때에 따라 다르지.

  1. "최고"를 어떻게 정의하느냐에 따라 다릅니다. 서둘러요? 쓰기가 더 쉽나요? 읽다? 유지하다? 더 휴대하기 좋나요? 좀 더 우아하게?

  2. 특정 작업에 따라 다릅니다. sedr-31415가 의견에서 주장한 것처럼 일반적으로 더 빠를 수 있지만 대체가 정의되는 방식(단어가 어떻게 제한되는지, 단어의 일부가 일치할 수 있는지)에 따라 제한된 가능성으로 인해 sed약간의 조작이 필요할 수 있습니다 awk.

  3. 구현에 따라 다릅니다. 두 명령 모두 교체를 위해 정규식을 사용하여 한 줄씩 작동하므로 정규식 엔진이 실행 속도를 결정할 가능성이 높습니다. 얼마나 최적화되어 있나요? 미리 컴파일된 모드를 사용합니까? 실행 중인 하드웨어에 따라 달라질 수도 있습니다! BSD 구현은 ARM에서 더 빠르게 실행되고 GNU 구현은 AMD64에서 더 빠르게 실행됩니다.

반대 질문을 하나 드리겠습니다. 왜 알고 싶으십니까?

관련 정보