[Linux] wc 명령어로 바이트, 문자, 단어 그리고 줄(라인) 수 세기

wc 명령어를 사용해서 파일 또는 입력의 바이트, 문자, 단어 그리고 줄(라인) 수를 세는 방법을 알아보자.


환경

  • Linux 기반 시스템
  • Bash shell(/bin/bash)


wc 명령어

wc 명령어란?

wc [OPTION]... [FILE]...
wc [OPTION]... --files0-from=F
  • wc: 주어지는 파일 또는 표준 입력의 바이트, 문자, 단어 그리고 줄(라인) 수를 출력해주는 명령어입니다.
  • wc는 ‘word count’를 의미한다고 합니다.
  • ls -al과 함께 폴더와 파일의 수를 알고 싶을때 응용이 가능합니다.


옵션별 사용법

예제에 사용할 파일 작성

  • ASCII용 예제
$ cat << EOF > test_ascii.txt
123
abc def hij
lmn opq rs
EOF

$ file test_ascii.txt
test_ascii.txt: ASCII text
  • UTF-8용 예제
$ cat << EOF > test_utf.txt
한국어 배워보세요.
감사합니다. 또 봐요!
EOF

$ file test_utf.txt
test_utf.txt: UTF-8 Unicode text

-c, –bytes 옵션

  • 파일의 바이트 수를 출력합니다.
$ wc -c test_ascii.txt
27 test_ascii.txt
# You can use it with cat command
$ cat test_ascii.txt | wc -c
27

-m, –chars 옵션

  • 문자들의 수를 출력합니다.
$ wc -m test_ascii.txt
27 test_ascii.txt
# You can use it with cat command
$ cat test_ascii.txt | wc -m
27
  • ASCII에서는 문자의 수가 곧 바이트의 수지만(문자당 1바이트) 다른 문자 형식에서는 아닐수도 있습니다.
$ wc -m test_ascii.txt
27 test_ascii.txt

$ wc -c test_ascii.txt
27 test_ascii.txt
$ wc -m test_utf.txt
24 test_utf.txt

$ wc -c test_utf.txt
56 test_utf.txt

-l, –lines 옵션

  • 줄(라인 또는 개행문자)의 수를 출력합니다.
$ wc -l test_ascii.txt
3 test_ascii.txt
$ cat test_ascii.txt | wc -l
3
  • 특정 폴더에서 파일이나 폴더의 수를 알고 싶을 때 ls -al과 같이 사용가능합니다.
$ ls -al | wc -l
9

-w, –words 옵션

  • 단어의 수를 출력합니다.
$ wc -w test_ascii.txt
7 test_ascii.txt
$ wc -w test_utf.txt
5 test_utf.txt


참고자료