소개
cw는 Rust로 구현된 고속 워드 카운터(wc) 복제본입니다. Unix/Linux 환경에서 널리 사용되는 wc 명령어의 기능을 포함하며, SIMD 최적화와 멀티스레딩을 통해 빠른 속도로 텍스트 파일의 줄, 단어, 문자, 바이트 수를 셀 수 있게 해줍니다.
상세정보
기본 카운팅 모드
cw는 wc와 유사한 플래그로 다양한 카운팅을 지원합니다. -l은 줄 수, -w는 단어 수, -c는 바이트 수, -m은 UTF-8 문자 수를 셀 수 있습니다. 여러 플래그를 조합하여 최대 줄 길이(-L) 등 복합적인 정보도 확인할 수 있습니다.
고성능 처리
cw는 성능에 최적화되어 있습니다. bytecount 및 memchr 크레이트를 활용하여 줄 수 세기와 같은 작업을 SIMD(단일 명령 다중 데이터)를 사용하여 가속화합니다. 벤치마크 결과, 기본 모드에서 FreeBSD 및 GNU wc보다 빠르며, 특정 모드에서는 최대 70배 이상의 성능 향상을 보입니다.
멀티스레딩 지원
여러 파일을 처리할 때 --threads 옵션을 사용하여 멀티스레딩을 활성화할 수 있습니다. 이를 통해 처리량을 대폭 높여 단일 스레드보다 최대 11배 이상 빠르게 동작합니다.
기본 사용법/명령어
cw는 명령줄에서 직접 실행합니다. 가장 기본적인 사용법은 파일을 인자로 전달하는 것입니다.
- 특정 파일의 줄, 단어, 바이트 수 출력:
cw 파일명 - 줄 수만 세기:
cw -l 파일명 - 단어 수만 세기:
cw -w 파일명 - UTF-8 문자 수 세기:
cw -m 파일명 - 여러 파일 처리 시 멀티스레딩 활성화:
cw --threads=8 파일1 파일2 ...
도움말을 보려면 cw --help 명령을 사용하세요.
이런 경우에 유용합니다
- 빠른 텍스트 분석: 로그 파일이나 대용량 텍스트 데이터에서 빠르게 줄 수나 단어 수를 확인해야 할 때
- 스크립트 및 자동화: 셸 스크립트나 자동화 파이프라인에서 텍스트 처리 속도를 높여야 할 때
- 성능 비교가 필요한 경우: GNU wc나 FreeBSD wc보다 더 빠른 카운팅이 요구될 때
지원 환경·시스템 요구사항
원본 소스는 Rust로 작성되어 다양한 플랫폼에서 빌드할 수 있습니다. Chocolatey 패키지를 통해 Windows에서도 설치 및 사용이 가능합니다. SIMD 가속 기능을 완전히 활용하려면 빌드 시 특정 기능 플래그가 필요할 수 있습니다.
제한 사항·확인 사항
- 로케일 미지원: 현재 cw는
-m플래그를 사용하지 않는 경우 로케일 설정과 관계없이 바이트 기반으로만 동작합니다. - 기능 개발 중: 공식 문서에 따르면, 유니코드 규칙을 보다 엄밀히 따르는 테스트 스위트, 라이브러리화, 다중 바이트 지원 개선 등의 추가 기능이 계획되어 있습니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


