기본 문법
wc [옵션] [파일...]
wc(word count)는 파일이나 표준 입력으로 들어온 텍스트의 줄 수, 단어 수, 바이트 수를 세어 출력하는 명령어입니다. 옵션 없이 실행하면 줄 수, 단어 수, 바이트 수를 이 순서로 한 줄에 보여주고 뒤에 파일 이름을 붙입니다. 파일 이름을 여러 개 주면 각 파일의 결과와 함께 total 행이 추가됩니다.
실무에서는 단독으로 쓰기보다 grep, find, ls 같은 명령의 결과를 파이프로 받아 건수를 세는 용도로 자주 사용합니다. 로그에서 ERROR가 몇 번 났는지, 특정 확장자 파일이 몇 개인지, 접속 기록이 몇 줄인지 확인할 때 `wc -l` 을 붙이면 됩니다.
리눅스마스터·LPIC 같은 시험에서는 wc의 기본 출력 순서(줄·단어·바이트)와 -l, -w, -c, -m 옵션의 구분을 묻는 문제가 나옵니다. 추출한 로그의 건수를 파일에 기록하는 실습 문제에서도 함께 쓰입니다.
자주 쓰는 옵션
| 옵션 | 의미 | 예 |
|---|---|---|
-l | 줄 수(개행 문자 개수)만 출력 (--lines) | wc -l /etc/passwd |
-w | 단어 수만 출력 (--words) | wc -w /etc/hostname |
-c | 바이트 수만 출력 (--bytes) | wc -c /etc/hosts |
-m | 문자 수만 출력. 현재 로캘 기준으로 멀티바이트 문자를 1자로 계산 (--chars) | wc -m /etc/hosts |
-L | 가장 긴 줄의 표시 길이를 출력 (--max-line-length) | wc -L /etc/services |
--files0-from=F | NUL로 구분된 파일 목록을 파일 F에서 읽어 처리 | wc -l --files0-from=/tmp/demo/list |
--help | 사용 가능한 옵션 요약 출력 | wc --help |
--version | coreutils 버전 정보 출력 | wc --version |
실무 예시
파일의 줄·단어·바이트 수 세기
준비: mkdir -p /tmp/demo; printf 'alpha beta\ngamma\ndelta epsilon zeta\n' > /tmp/demo/words.txt
$ wc /tmp/demo/words.txt
3 6 36 /tmp/demo/words.txt
옵션 없이 실행하면 줄 수, 단어 수, 바이트 수, 파일 이름 순으로 출력됩니다. 각 숫자는 자릿수에 맞춰 오른쪽 정렬되므로 앞에 공백이 붙을 수 있습니다.
줄 수만 세기
준비: mkdir -p /tmp/demo; printf 'alpha beta\ngamma\ndelta epsilon zeta\n' > /tmp/demo/words.txt
$ wc -l /tmp/demo/words.txt
3 /tmp/demo/words.txt
-l 옵션으로 줄 수만 확인합니다. 로그 건수 집계에 가장 많이 쓰는 형태입니다.
파이프로 받아 숫자만 얻기
준비: mkdir -p /tmp/demo; printf 'INFO start\nWARN disk low\nERROR failed\nWARN slow query\nINFO done\nWARN retry\n' > /tmp/demo/app.log
$ grep 'WARN' /tmp/demo/app.log | wc -l
3
표준 입력을 받으면 파일 이름이 붙지 않아 숫자만 출력됩니다. 건수를 파일에 기록할 때 유용합니다.
여러 파일 동시에 세기
준비: mkdir -p /tmp/demo; printf 'a\nb\nc\n' > /tmp/demo/one.txt; printf 'x\ny\n' > /tmp/demo/two.txt
$ wc -l /tmp/demo/one.txt /tmp/demo/two.txt
3 /tmp/demo/one.txt
2 /tmp/demo/two.txt
5 total
파일을 여러 개 지정하면 각 파일의 줄 수와 함께 합계인 total 행이 출력됩니다.
find 결과로 확장자별 파일 개수 세기
준비: mkdir -p /tmp/demo/src/sub; touch /tmp/demo/src/a.log /tmp/demo/src/b.log /tmp/demo/src/sub/c.log /tmp/demo/src/d.txt /tmp/demo/src/sub/e.sh
$ find /tmp/demo/src -type f -name '*.log' | wc -l
3
하위 디렉터리를 포함해 조건에 맞는 파일 개수를 셉니다. 확장자별 요약 문제의 기본 패턴입니다.
주의할 점
- `wc -l 파일` 은 파일 이름까지 함께 출력됩니다. 숫자만 필요하면 `wc -l < 파일` 이나 파이프를 쓰세요.
- -l은 개행 문자 개수를 셉니다. 마지막 줄에 개행이 없으면 실제 줄보다 1 적게 나옵니다.
- -c는 바이트, -m은 문자 수입니다. 한글처럼 멀티바이트 문자에서는 두 값이 다르며, -m 결과는 로캘 설정에 영향을 받습니다.
- `ls | wc -l` 은 이름에 개행이 있으면 틀립니다. 정확한 개수는 `find ... -type f | wc -l` 을 쓰세요.
- 파일이 하나일 때와 여러 개일 때 출력 폭(앞쪽 공백)이 달라집니다. 스크립트에서 숫자만 쓰려면 `$(wc -l < 파일)` 처럼 표준 입력으로 넘기세요.
- `--total=WHEN` 옵션은 coreutils 9.0 이상에서만 지원됩니다. Rocky Linux 8의 coreutils 8.30에서는 사용할 수 없습니다.
이 명령어로 풀 수 있는 실습 문제
브라우저 웹 터미널에서 바로 풀고 요구사항별로 자동 채점됩니다. 로그인 없이 5분 체험도 가능합니다.
관련 명령어
마지막 검수 2026-09-16 · 내용에 오류가 있으면 문제 페이지의 질문 기능으로 알려 주세요.
