使用 Linux 以來,一直都是依據需求去尋找可用指令,偶然間便發現了 wc(不是 water closet)

首先來看一下說明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ wc --help
用法:wc [選項]... [檔案]...
  或:wc [選項]... --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     顯示此求助說明並離開
      --version  顯示版本資訊並離開

Report wc bugs to bug-coreutils@gnu.org
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
回報 wc 翻譯錯誤到 <http://translationproject.org/team/>
For complete documentation, run: info coreutils 'wc invocation'

實際操作

範例檔案

example
1
2
3
96 69
0-0
素肚

預設

回應格式-l -w -m filename => 行數、字數、byte 數、檔案名稱

1
2
$ wc example
 3  4 17 example

-c 取得 byte 數

1
2
3
$ wc -c example
17 example
# 6+4+7=17

釋疑

  • 空格1 byte
  • 換行符號1 byte
  • UTF-8 編碼3 byte

-m 取得字元數

1
2
3
$ wc -m example
13 example
# 6+4+3=13

釋疑

  • 空格1 個字元
  • 換行符號1 個字元
  • UTF-8 編碼1 個字元

-l 取得行數

1
2
$ wc -l example
3 example

-L 取得最長行的長度

1
2
3
$ wc -L example
5 example
# 5、3、4

釋疑

  • 空格長度 1
  • 換行符號不計算
  • UTF-8 編碼長度 2

-w 取得字數

1
2
3
$ wc -w example
4 example
# 96, 69, 0-0, 素肚 => 4

某些使用情境

我只想列出總行數,不想要檔案名稱

1
2
$ cat example | wc -l
3

我想批次掃描檔案獲取行數

1
2
3
4
5
$ find [path/to/dir] -name '*.php' | xargs wc -l
   32 web/xhprof_html/typeahead.php
   91 web/xhprof_html/callgraph.php
   90 web/xhprof_html/index.php
  213 總計

後記

簡單介紹到此為止,我們下次見!(範例檔案好像怪怪的)