본문 바로가기
IT/리눅스 명령어

[Linux] 리눅스 서버, wc 명령어 사용법 및 옵션 사용법 총정리

by 꾸꾸웍스 2022. 4. 14.
반응형

[Linux] 리눅스 서버, wc 명령어 사용법 및 옵션 사용법 총정리



※ 목차

1. 리눅스 wc 명령어란???
2. 리눅스 wc 명령어 사용법
3. 리눅스 wc 명령어 옵션
4. 리눅스 wc 명령어 옵션 사용법

 


1. 리눅스 wc 명령어란???

 Word Count의 약자로 사용자가 지정한 파일에 행이나 단어 또는 문자수를 출력해 주는 명령어입니다.
  • wc 명령어는 -l 옵션을 사용해 파일의 라인을 출력해야 될 때 자주 사용됩니다
    • 파일의 대략적인 양, 파일을 비교할 때, 특정 명령어의 결과에 대한 라인 수

2. 리눅스 wc 명령어 사용법

wc [옵션] [파일]
wc [option] [file]...

  • 파일을 입력하지 않거나 파일이 '-' 기호로 입력되면 표준 입력을 읽습니다.
    • 입력 후 ctrl+d를 눌러 종료하면 행(Line), 단어(word), 행(Line)+문자수(Char)가 출력됩니다.
# 아래 예시
[ server 2022-04-14 14:14:24 ] ~/testdir
user@server # wc                      ### wc 명령어만 입력, 'wc -'와 결과값 같음
a                                              ### 첫행에 a를 입력
bb                                            ### 두번째행에 bb를 입력
ccc                                           ### 세번째행에 ccc를 입력 후 ctrl+d로 종료
      3       3       9                      ### 차례대로 행, 단어, 행+문자수가 출력

  • 리다이렉션을 활용하여 wc 명령어의 결과 값을 저장 및 출력할 수 있습니다.
### 아래 예시

### 리다이렉션 '>' 기호로 표준 입력을 받아 3줄을 입력하여 ctrl+d로 종료한 값을 file1.txt로 저장

[ server 2022-04-14 14:18:54 ] ~/testdir
user@server # wc > file1.txt
a
bb
ccc

### file1의 값을 cat으로 열면 '행,단어,행+문자수'가 출력됨

[ server 2022-04-14 14:19:08 ] ~/testdir
user@server # cat file1.txt
      3       3       9

### 리다이렉션 '<' 기호로 표준 출력으로 wc 명령을 하면 '지정한 파일 라인수,단어,파일크기(바이트)' 출력
    
[ server 2022-04-14 14:19:12 ] ~/testdir
user@server # wc < file1.txt
 1  3 24

### 위와 동일하게 출력이되지만 마지막에 입력한 파일명이 출력
[ server 2022-04-14 14:19:27 ] ~/testdir
user@server # wc file1.txt
 1  3 24 file1.txt

### file1.txt의 파일크기(바이트)는 24
[ server 2022-04-14 14:19:18 ] ~/testdir
user@server # ls -l
total 4
-rw-r--r-- 1 user user 24 Apr 14 14:19 file1.txt

  • wc 명령어는 한 개 또는 여러 개의 파일을 사용할 수 있습니다.
### 아래 예시는 두개의 파일

[ server 2022-04-13 17:44:10 ] ~/testdir
user@server # ll
total 8
-rw-r--r-- 1 user user 15 Apr 13 17:44 file1.txt
-rw-r--r-- 1 user user 36 Apr 13 17:38 file.txt

### 두개의 파일에 대한 각각의 wc 결과값과 두개의 파일을 합한 total값의 결과
[ server 2022-04-13 17:44:11 ] ~/testdir
user@server # wc file1.txt file.txt
 3  3 15 file1.txt
 2  9 36 file.txt
 5 12 51 total

 


3. 리눅스 wc 명령어 옵션

번호 옵션 long옵션 설명
1 -c --bytes 지정한 파일의 바이트(byte) 수를 출력합니다.
2 -m --chars 지정한 파일의 문자(char) 수를 출력합니다.
3 -l --lines 지정한 파일의 행(Line) 수를 출력합니다.
4 - --files0-from=F NUL로 끝나는 파일에 대해 입력값을 받아 정보를 출력합니다.
5 -L --max-line-length 지정한 파일 중 가장 긴 라인의 문자 수를 출력합니다.
6 -w --words 지정한 파일의 단어(word) 수를 출력합니다.
7 - --help wc 명령어의 사용법을 출력합니다.
8 - --version wc 명령어의 버전을 출력합니다.

4. 리눅스 wc 명령어 옵션 사용법

wc -c 옵션 사용법
  • 지정한 파일의 바이트(byte) 수를 출력합니다.
### 예시를 위해 file1.txt 파일을 생성

[ server 2022-04-14 15:00:16 ] ~/testdir
user@server # ll
total 4
-rw-r--r-- 1 user user 97 Apr 14 15:00 file1.txt

[ server 2022-04-13 17:16:24 ] ~/testdir
user@server # cat -n file1.txt
     1  Hello, my name is Song
     2  How ary you?
     3  Nice to meet you
     4  I like apple
     5  They should keep their promise

### -c 옵션을 사용해 파일의 바이트 수를 출력
[ server 2022-04-13 17:16:37 ] ~/testdir
user@server # wc -c file1.txt
97 file1.txt

wc -m 옵션 사용법
  • 지정한 파일의 문자(char) 수를 출력합니다.
### 예시를 위해 file1.txt 파일을 생성

[ server 2022-04-14 15:00:16 ] ~/testdir
user@server # ll
total 4
-rw-r--r-- 1 user user 97 Apr 14 15:00 file1.txt

[ server 2022-04-13 17:16:24 ] ~/testdir
user@server # cat -n file1.txt
     1  Hello, my name is Song
     2  How ary you?
     3  Nice to meet you
     4  I like apple
     5  They should keep their promise

### -m 옵션을 사용하여 문자 수를 출력
[ server 2022-04-13 17:20:54 ] ~/testdir
user@server # wc -m file1.txt
97 file1.txt

wc -l 옵션 사용법
  • 지정한 파일의 행(Line) 수를 출력합니다.
### 예시를 위해 file1.txt 파일을 생성

[ server 2022-04-14 15:00:16 ] ~/testdir
user@server # ll
total 4
-rw-r--r-- 1 user user 97 Apr 14 15:00 file1.txt

[ server 2022-04-13 17:16:24 ] ~/testdir
user@server # cat -n file1.txt
     1  Hello, my name is Song
     2  How ary you?
     3  Nice to meet you
     4  I like apple
     5  They should keep their promise

### -l 옵션을 이용하여 라인 수 출력
[ server 2022-04-13 17:16:27 ] ~/testdir
user@server # wc -l file1.txt
5 file1.txt

wc --files0-from 옵션 사용법
  • NUL로 끝나는 파일에 대해 입력값을 받아 정보를 출력합니다.
    • 옵션의 포맷 방식은 --files0-from=F 이고 F는 파일을 의미합니다.
      파일이 아니라 '-' 기호를 사용하면 표준 입력을 받을 수 있습니다.
      • NUL은 0의 주소를 의미하는 것으로 숫자 0과 의미랑 비슷하지만 반드시 숫자 0과는 다릅니다.
        때문에 아스키코드 표를 기준으로 NUL은 16진수로 0X00이지만 숫자 0은 16진수로 0X30으로
        표현하기 때문에 완전히 다른 것을 의미합니다.
[ server 2022-04-14 14:01:08 ] ~/testdir
user@server # ll
total 12
-rw-r--r-- 1 user user 15 Apr 13 17:44 file1.txt
-rw-r--r-- 1 user user 24 Apr 13 17:54 file2.txt
-rw-r--r-- 1 user user 36 Apr 13 17:38 file.txt

[ server 2022-04-14 14:01:15 ] ~/testdir
user@server # pwd
/home/usergroup/user/testdir


### 입력값은 위 경로에서 부터 file로 시작하는 파일을 찾아 -m --file0-from=- 옵션을 사용하여 입력값을 받은 파일의 문자 수를 찾는 예시
[ server 2022-04-14 14:01:16 ] ~/testdir
user@server # find /home/usergroup/user/testdir 'file*' -print0 | wc -m --files0-from=-
find: ‘file*’: No such file or directory
wc: /home/user/user/testdir: Is a directory
0 /home/user/user/testdir
36 /home/user/user/testdir/file.txt
15 /home/user/user/testdir/file1.txt
24 /home/user/user/testdir/file2.txt
75 total

### 현재 경로에 모든 파일의 출력 값을 today.txt에 담는다. (print0은 NUL의 설정 해주기위함)

[ server 2022-04-14 14:01:28 ] ~/testdir
user@server # find * -print0 > today.txt

[ server 2022-04-14 14:01:58 ] ~/testdir
user@server # ll
total 16
-rw-r--r-- 1 user user 15 Apr 13 17:44 file1.txt
-rw-r--r-- 1 user user 24 Apr 13 17:54 file2.txt
-rw-r--r-- 1 user user 36 Apr 13 17:38 file.txt
-rw-r--r-- 1 user user 29 Apr 14 14:01 today.txt

### --files0-from 옵션에 파일을 입력하여 각 파일의 문자 수를 출력하게 함
[ server 2022-04-14 14:02:01 ] ~/testdir
user@server # wc -m --files0-from=today.txt
15 file1.txt
24 file2.txt
36 file.txt
75 total

 

wc -L 옵션 사용법
  • 지정한 파일 중 가장 긴 라인의 문자 수를 출력합니다.
### 예시를 위해 file1.txt 파일을 생성

[ server 2022-04-14 15:00:16 ] ~/testdir
user@server # ll
total 4
-rw-r--r-- 1 user user 97 Apr 14 15:00 file1.txt

[ server 2022-04-13 17:16:24 ] ~/testdir
user@server # cat -n file1.txt
     1  Hello, my name is Song
     2  How ary you?
     3  Nice to meet you
     4  I like apple
     5  They should keep their promise
     
### -L 옵션을 사용하여 가장 긴라인의 문자 수 출력
[ server 2022-04-13 17:22:42 ] ~/testdir
user@server # wc -L file1.txt
30 file1.txt

wc -w 옵션 사용법
  • 지정한 파일의 단어(word) 수를 출력합니다.
### 예시를 위해 file1.txt 파일을 생성

[ server 2022-04-14 15:00:16 ] ~/testdir
user@server # ll
total 4
-rw-r--r-- 1 user user 97 Apr 14 15:00 file1.txt

[ server 2022-04-13 17:16:24 ] ~/testdir
user@server # cat -n file1.txt
     1  Hello, my name is Song
     2  How ary you?
     3  Nice to meet you
     4  I like apple
     5  They should keep their promise
     
### -w 옵션을 사용하여 단어 수를 출력합니다.
[ server 2022-04-13 17:16:32 ] ~/testdir
user@server # wc -w file1.txt
20 file1.txt

wc --help 옵션과 wc --version 옵션 사용 예시
  • wc 명령어의 사용법 및 버전을 출력합니다.
### wc --help 옵션

[ server 2022-04-13 17:24:58 ] ~/testdir
user@server # wc --help
Usage: wc [OPTION]... [FILE]...
  or:  wc [OPTION]... --files0-from=F
Print newline, word, and byte counts for each FILE, and a total line if
more than one FILE is specified.  With no FILE, or when FILE is -,
read standard input.  A word is a non-zero-length sequence of characters
delimited by white space.
The options below may be used to select which counts are printed, always in
the following order: newline, word, character, byte, maximum line length.
  -c, --bytes            print the byte counts
  -m, --chars            print the character counts
  -l, --lines            print the newline counts
      --files0-from=F    read input from the files specified by
                           NUL-terminated names in file F;
                           If F is - then read names from standard input
  -L, --max-line-length  print the length of the longest line
  -w, --words            print the word counts
      --help     display this help and exit
      --version  output version information and exit

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'wc invocation'

### wc --version 옵션

[ server 2022-04-13 17:25:01 ] ~/testdir
user@server # wc --version
wc (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Paul Rubin and David MacKenzie.


 

반응형
그리드형

댓글