wc (유닉스 명령어)
개요
wc(word count)는 유닉스 및 리눅스 운영체제에서 파일이나 표준 입력의 줄(line), 단어(word), 문자(character), 바이트(byte) 수를 세는 명령어입니다. 1970년대 초 AT&T 벨 연구소에서 개발된 초기 유닉스 명령어 중 하나로, 텍스트 처리와 데이터 분석의 기본 도구로 널리 사용됩니다.
주요 내용
기본 사용법
wc [옵션] [파일...]
- 옵션 없이 실행하면 줄, 단어, 문자 수를 순서대로 출력합니다.
- 여러 파일을 인자로 주면 각 파일의 결과와 함께 총계(total)를 출력합니다.
- 표준 입력(파이프)을 통해 데이터를 받을 수도 있습니다.
주요 옵션
-l: 줄(line) 수만 출력-w: 단어(word) 수만 출력-c: 바이트(byte) 수만 출력-m: 문자(character) 수만 출력 (멀티바이트 문자 지원)-L: 가장 긴 줄의 길이 출력--help: 도움말 출력--version: 버전 정보 출력
출력 형식
기본 출력은 줄 수 단어 수 문자 수 파일명 순서입니다. 예: 10 45 230 file.txt
활용 예시
1. 파일 분석
- wc -l file.txt : 파일의 줄 수 확인
- wc -w file.txt : 파일의 단어 수 확인
- wc -c file.txt : 파일의 바이트 크기 확인
2. 파이프라인 활용
- ls -l | wc -l : 현재 디렉토리 파일 개수 세기
- cat file.txt | grep 'error' | wc -l : 에러 로그 줄 수 세기
- ps aux | wc -l : 실행 중인 프로세스 개수 확인
3. 스크립트에서 사용
- 조건문과 결합하여 파일이 비어있는지 확인: if [ $(wc -l < file.txt) -eq 0 ]; then ...
- 로그 파일 모니터링: tail -f log.txt | wc -l (실시간 줄 수 증가 확인)
동작 원리
wc는 내부적으로 파일을 스트림으로 읽어 들여 문자 단위로 파싱합니다. 줄은 개행 문자(\n)로 구분하고, 단어는 공백, 탭, 개행 등으로 구분합니다. 문자 수는 바이트 단위로 계산되며, -m 옵션을 사용하면 로케일 설정에 따라 멀티바이트 문자를 올바르게 셉니다.
역사적 배경
wc는 1971년 유닉스 1판에 포함된 초기 명령어입니다. Ken Thompson과 Dennis Ritchie가 개발한 것으로 알려져 있습니다. 초기에는 단순히 단어 수만 세었으나, 이후 줄과 문자 수 기능이 추가되었습니다. POSIX 표준에 포함되어 모든 유닉스 계열 시스템에서 사용 가능합니다.
다른 명령어와의 비교
wc는 단순히 개수만 세는 반면,grep -c는 패턴 매칭된 줄 수를 셉니다.wc -l은cat file | wc -l과 동일하지만,wc -l < file이 더 효율적입니다.wc -c는stat명령어의 파일 크기와 유사하지만,wc는 파일을 읽어서 계산하므로 느릴 수 있습니다.
최신 동향
2024-2025년 기준, wc는 여전히 모든 리눅스 배포판과 macOS, BSD 계열에서 기본 제공됩니다. 최신 GNU coreutils 버전(9.x)에서는 성능 최적화와 유니코드 지원이 개선되었습니다. 특히 대용량 파일 처리 시 메모리 사용량이 줄었고, 멀티바이트 문자 처리 속도가 빨라졌습니다. 또한, wc는 현대적인 데이터 파이프라인(예: Apache Spark, Hadoop)에서도 텍스트 파일의 기본 통계를 내는 데 여전히 사용됩니다. 클라우드 환경(예: AWS, GCP)의 서버리스 함수에서도 간단한 로그 분석 도구로 활용됩니다.
관련 주제
- [[grep]]
- [[awk]]
- [[sed]]
- [[cat]]
- [[파이프 (유닉스)]]
- [[coreutils]]
---
AI 자동 생성 문서 · 커뮤니티가 함께 개선합니다