本篇介紹如何在 Linux 系統上使用 wc 指令計算資料的字數、行數等統計數據。

wc 是一個 Linux 的基本指令,可用來計算檔案內容的字數、行數、位元組數等資訊,雖然功能很簡單,但是卻很實用,以下是這個指令的使用方式與範例。

基本用法

wc 可用來計算指定檔案內容的換行數(newline)、字數(word)與位元組數(byte),例如計算 /etc/motd/etc/os-release 這兩個檔案的字數統計:

wc /etc/motd /etc/os-release
  7  40 286 /etc/motd
  9  14 276 /etc/os-release
 16  54 562 total

wc 會對每一個指定的檔案輸出三個數值,分別代表換行數、字數與字元數,以這個例子來說,輸出的第一行代表 /etc/motd 這個檔案內容總共有 7 行、字數為 40,總共的位元組數則為 286,其餘以此類推。

從標準輸入讀取資料

wc 跟一般的 Linux 指令工具一樣,亦可從標準輸入讀取資料:

cat /etc/motd | wc
      7      40     286

只計算換行數

若只要計算換行數,可以加上 -l 參數:

wc -l /etc/motd
7 /etc/motd

只計算字數

若只要計算字數,可以加上 -w 參數:

wc -w /etc/motd
40 /etc/motd

只計算位元組數

若只要計算位元組數,可以加上 -c 參數:

wc -c /etc/motd
286 /etc/motd

只計算字元數

若只要計算字元數(character),可以加上 -m 參數:

wc -m /etc/motd
286 /etc/motd

對於普通英文的資料而言,位元組與字元的數量會是相同的,但如果有中文字的話,就會有些不同:

echo -n "中文" | wc -m
2
echo -n "中文" | wc -c
6

計算最長行的長度

如果想要找出資料中最長那一行的長度,可以加上 -L 參數:

wc -L /etc/motd
73 /etc/motd

實用範例

這行指令可以用來計算在目前目錄中,所有 Python 指令稿(*.py)的數量:

# 計算目前目錄下,Python 指令稿的數量
ls *.py | wc -l

參考資料:HowtoForge