본문 바로가기
IT/Linux

리눅스 wc 사용법: 줄·단어·바이트·문자 수 세기와 -l·-w·-c·-m 차이

by 바른정보블로그 2026. 10. 28.
SMALL
리눅스 터미널 노트북과 문서·펭귄으로 wc의 줄 단어 문자 바이트 집계를 표현한 삽화

리눅스에서 텍스트 파일의 줄 수를 세려면 wc를 쓰지만, 숫자의 뜻부터 구분해야 합니다. 화면에 보이는 줄과 개행 수는 다를 수 있고, 한글 글자 수와 저장된 바이트 수도 같지 않습니다. 로그나 문서 집계에서 헷갈리기 쉬운 GNU wc의 기본 옵션을 정리합니다.

2026년 10월 28일 GNU 공식 문서를 직접 확인한 내용입니다. Ubuntu 등에서 GNU coreutils의 wc를 쓰는 상황을 기준으로 하며 특정 Ubuntu 버전의 설치 상태를 보장하지 않습니다. 실제 Linux 실행 테스트는 미확인이며 아래 숫자는 문서 규칙에 따른 예상값입니다.

빠른 결론

① -l은 개행 수, -w는 공백 문자로 나뉜 묶음 수입니다.
② -c는 바이트, -m은 현재 로케일에 따른 문자 수입니다.
③ 파일명 없이 숫자만 받으려면 wc -l < "파일명"처럼 입력을 연결합니다.

시작 전 체크리스트

  • 대상이 디렉터리가 아니라 읽을 수 있는 텍스트 파일인지 확인합니다.
  • 원하는 기준이 개행·단어·문자·바이트 중 무엇인지 먼저 정합니다.
  • 파일의 문자 인코딩과 현재 로케일이 맞는지 확인합니다.
  • 기존 파일을 덮어쓰는 실습 대신 이미 있는 파일을 읽는 예제로 진행합니다.

번호 순서대로 wc 사용하기

1. 기본 결과의 열 순서 읽기

wc "sample.txt"

옵션을 생략하면 개행 수, 단어 수, 바이트 수, 파일명 순서로 나옵니다. 예를 들어 내용이 정확히 hello world 뒤에 개행 하나인 파일은 1, 2, 12 순서가 예상됩니다. 띄어쓰기와 개행도 바이트에 포함됩니다. 열 사이 공백 폭은 고정값으로 가정하지 마세요.

2. 줄 수는 -l로 확인하기

wc -l "sample.txt"

-l은 엄밀히 말해 newline 문자 수입니다. 파일 끝에 개행이 없는 마지막 조각은 세지 않습니다. 따라서 내용이 hello뿐이면 예상값은 0이고, 뒤에 개행이 붙으면 1입니다. 편집기에서 보이는 줄 번호나 화면 폭에 따른 자동 줄바꿈과 혼동하지 마세요.

3. 단어 수는 -w의 기준 이해하기

wc -w "sample.txt"

단어는 공백 문자가 아닌 문자의 연속이며 공백 문자 또는 입력의 시작·끝으로 구분됩니다. 안녕 세계는 두 묶음, 안녕세계는 한 묶음으로 해석됩니다. 한국어의 의미 단어나 형태소를 분석하는 기능은 아닙니다. 공백 문자 판정에는 현재 로케일이 관여하며 GNU의 일부 유니코드 공백 처리에는 환경변수 예외도 있습니다.

4. 바이트와 문자를 따로 비교하기

wc -c "sample.txt"
wc -m "sample.txt"

-c는 저장된 바이트 수를 셉니다. -m은 현재 로케일 기준 문자 수를 세며 인코딩 오류는 세지 않습니다. 정상 UTF-8 로케일에서 내용이 개행 없는 가 하나라면 바이트 3, 문자 1이 예상됩니다. 여기에 개행을 붙이면 각각 4와 2가 됩니다. 파일 크기와 글자 수를 비교할 때는 보이지 않는 공백·개행도 함께 고려하세요.

5. 파일명 없이 필요한 숫자만 받기

wc -l < "sample.txt"
wc -m < "sample.txt"

Bash의 <는 파일을 읽어 표준입력에 연결합니다. wc에 파일명을 인수로 넘기지 않으므로 결과에도 파일명이 붙지 않습니다. 파일 자체의 이름을 지우거나 바꾸는 명령이 아닙니다. 파일명에 공백이 있을 수 있으므로 따옴표를 유지하세요.

주의사항

  • <와 >는 반대 방향입니다. 읽으려다 출력 리다이렉션을 쓰면 기존 파일이 비워질 수 있습니다.
  • -m도 공백과 개행을 포함합니다. 공백 제외 글자 수를 요구하는 원고 분량 검사에 이 결과를 그대로 쓰지 마세요.
  • 이 글은 기본 단축 옵션에 집중합니다. 최신 GNU 매뉴얼에 있는 확장 옵션을 Ubuntu의 모든 coreutils 버전에 그대로 적용하지 않습니다.

해결되지 않을 때 추가 점검

  • 줄이 하나 적다면 마지막에 개행이 있는지 먼저 확인합니다.
  • 한글 문자 수가 이상하면 파일 인코딩과 현재 로케일을 대조합니다. 인코딩 오류를 무시한 값을 정상 글자 수로 해석하지 마세요.
  • 파일을 못 읽으면 경로·따옴표·읽기 권한을 확인합니다. 입력 리다이렉션은 파일 열기에 실패하면 진행되지 않습니다.
  • 다른 환경과 숫자가 다르면 내용뿐 아니라 공백, 개행, 로케일 조건까지 같게 맞춥니다.

FAQ

Q1. wc -l은 문서의 모든 줄을 세나요?

개행 문자를 셉니다. 마지막 개행 없는 부분은 제외되므로 화면에 보이는 줄 수와 다를 수 있습니다.

Q2. 한글 글자 수는 -c와 -m 중 무엇인가요?

문자 집계 목적이면 로케일과 인코딩을 확인한 뒤 -m을 사용합니다. -c는 바이트 수이며 공백 제외 글자 수와는 다릅니다.

Q3. 파일을 여러 개 주면 어떻게 되나요?

각 파일 결과를 출력하고 기본적으로 합계인 total 행도 붙습니다. 한 파일의 숫자만 필요하면 대상을 하나로 좁혀 확인하세요.

함께 보면 좋은 글

공식 출처

LIST

댓글