wc (word count) 指令用來檢視純文字檔案的基本內容:
wc FILE會輸出一列回應,依序顯示列數、字數、byte 數和檔案名。例如
wc forty.txt的回應應該是
其中列數很容易定義:檔案中每出現一個折列指令,就算一列。 byte 數也很容易定義:檔案中所有字元的總數, 和 ls -l 顯示的檔案含量一樣。 但是字數就比較麻煩:這裡指的是廣義字的意思。 所謂一個廣義字,就是以空格、跳格或折列指令為兩端點的連續 ASCII 字符。 所以廣義字未必是一個英文字。參考以下範例:40 140 842 forty.txt
"Don't bug me," she said, "I bite."則這一列中一共有 7 個廣義字,依序是
1 | "Don't | 2 | bug | 3 | me," |
---|---|---|---|---|---|
4 | she | 5 | said, | 6 | "I |
7 | bite." |
wc其中 [Ctrl+D] 是按 Ctrl+D 結束輸入的意思。 結束輸入之後,wc 就會輸出回應,如下
"Don't bug me," she said, "I bite."
[Ctrl+D]
注意,此時 wc 是從 stdin 取得資料,所以沒有檔案名。1 7 36
wc 可以統計許多檔案的列數、字數、byte 數。例如
wc *.txt會列出各個檔案的統計,還會在最後一列顯示總和。
如果只要 wc 顯示列數,用參數 wc -l。 如果只要 wc 顯示字數,用參數 wc -w。 如果只要 wc 顯示 byte 數,用參數 wc -c。
以下是非標準 UNIX 工具。中大數學系的 UNIX 系統有安裝。
對於中文的純文字檔案,wc 只能正確顯示列數和 byte 數,卻不能計算字數。 除非令文件中的每兩個中文字之間,都有一個空格、跳格、或折列指令。 因此我們需要令一個檢視工具:zc (zi4 count)。 基本使用方法也是
zc FILEzc 會輸出一列回應,依序顯示英文字數、中文字數、中文標點數、檔案名。 此處的英文字仍是廣義字的意思,只是增加了一個條件: 以中文、空格、跳格或折列指令為兩端點的連續 ASCII 字符。 所以,如果輸入檔案是個 ASCII 的純文字檔案, 則用 zc 計算的字數和用 wc 計算的字數應該完全相同。 中文字數包括了中文標點符號在內。 zc 也可以一次接受許多檔案,也會計算總和。
如果只要 zc 顯示英文字數,用參數 zc -w。 如果只要 zc 顯示中文字數,用參數 zc -z。 如果只要 zc 顯示中文標點符號數,用參數 zc -p。
習題
注意:此處所有文件均為原著,個別的版權宣告日後會一一公布, 整體版面設計亦尚未完成。但仍請勿抄襲文字與圖片,以免觸犯著作權法。
Created: Nov 19, 2000
Last Revised: Nov 19, 2000
© Copyright 2000 Wei-Chang Shann 單維彰