UNIX 文字工具: 檢視工具

wc (word count) 指令用來檢視純文字檔案的基本內容:

wc FILE
會輸出一列回應,依序顯示列數、字數、byte 數和檔案名。例如
wc forty.txt
的回應應該是
      40     140     842 forty.txt
其中列數很容易定義:檔案中每出現一個折列指令,就算一列。 byte 數也很容易定義:檔案中所有字元的總數, 和 ls -l 顯示的檔案含量一樣。 但是字數就比較麻煩:這裡指的是廣義字的意思。 所謂一個廣義字,就是以空格、跳格或折列指令為兩端點的連續 ASCII 字符。 所以廣義字未必是一個英文字。參考以下範例:
"Don't bug me," she said, "I bite."
則這一列中一共有 7 個廣義字,依序是
1"Don't 2bug 3me,"
4she 5said, 6"I
7bite."



讀者可以利用 wc 的 stdin 機制做以下實驗:
wc
"Don't bug me," she said, "I bite."
[Ctrl+D]
其中 [Ctrl+D] 是按 Ctrl+D 結束輸入的意思。 結束輸入之後,wc 就會輸出回應,如下
       1       7      36
注意,此時 wc 是從 stdin 取得資料,所以沒有檔案名。

wc 可以統計許多檔案的列數、字數、byte 數。例如

wc *.txt
會列出各個檔案的統計,還會在最後一列顯示總和。

如果只要 wc 顯示列數,用參數 wc -l。 如果只要 wc 顯示字數,用參數 wc -w。 如果只要 wc 顯示 byte 數,用參數 wc -c


以下是非標準 UNIX 工具。中大數學系的 UNIX 系統有安裝。

對於中文的純文字檔案,wc 只能正確顯示列數和 byte 數,卻不能計算字數。 除非令文件中的每兩個中文字之間,都有一個空格、跳格、或折列指令。 因此我們需要令一個檢視工具:zc (zi4 count)。 基本使用方法也是

zc FILE
zc 會輸出一列回應,依序顯示英文字數、中文字數、中文標點數、檔案名。 此處的英文字仍是廣義字的意思,只是增加了一個條件: 以中文、空格、跳格或折列指令為兩端點的連續 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 單維彰

shann@math.ncu.edu.tw