wc(world count)是一個統計文件字詞,字節,行數的Linux命令,它可以幫我們非常方便的統計以上信息。 |
主要參數
常見參數如下:
-c 統計字節數。
-l 統計行數。
-m 統計字符數。這個標誌不能與 -c 標誌一起使用。
-w 統計字數。注意,這裏的字指的是由空格,換行符等分隔的字符串。
我們接下來直接看幾個實例。
統計文件行數,詞數和字節數
$ wc test.txt 1 1 7 test.txt
打印結果表明該文件有1行,1個詞,7字節。
要特別提醒的是,這裏的詞是以空格,換行符等分隔開的字符串,也就是說
words 字詞
這裏只有兩個詞。
僅統計文件行數,詞數,字符數或字節數
僅統計單項內容時,僅需要帶上對應的參數即可,例如:
$ wc -l test.txt 1 test.txt
使用-l參數,使得只顯示行數。
但是這裏特別要注意的是字符數和字節數的區別。字節數是數據佔用的空間大小,而一個字符可能佔多個字節,例如,UTF-8編碼中,一個英文字母就是一個字符,佔用空間一個字節,而一箇中文,則佔用3字節大小。
舉個例子:
編程
編程,在這裏是兩個字符,而佔用空間是6字節,但是使用wc -m統計會比兩個多一個,是3個字符。
$ echo 編程|wc -m 3 $ echo 編程|wc -c 7
各編碼字符佔用字符情況如下:
編碼 | 英文字母 | 中文 |
---|---|---|
UTF-8 | 1字節 | 3字節 |
Unicode | 1字節 | 2字節 |
你可以使用:
$ echo $LANG en_GB.UTF-8
查看編碼格式。
統計命令執行結果數量
實際上個人認爲,最常用的還是-l參數,它用來統計文件或標準輸出有多少行,那麼實際上就可以用來做很多統計的事情了。
例如,統計當前目錄下有多少個普通文件:
$ ls -l total 4 -rw-rw-r-- 1 hyb hyb 0 3月 21 20:32 test2.txt -rw-rw-r-- 1 hyb hyb 13 3月 21 20:18 test.txt $ ls -l |grep "^-"|wc -l 2
可以得到文件數量爲2。grep "^-"的意思是,獲取哪些以-開頭的行,因爲普通文件都是以-開頭的。
當然如果想統計包括子目錄的總文件數量,可以加上-R參數:
ls -lR |grep "^-"|wc -l
再例如,查看chrome相關進程數量:
$ ps -ef|grep google|grep -v grep |wc -l 23
類似這樣的用法還有很多,只要你想統計都可以做。
這裏再多說兩句:
|是管道符,ls -l|wc -l表示將ls -l的結果傳給wc命令處理
grep用於文本查找,grep "a",表明查找包含a的行,而grep -v "b",表明過濾包含b的行。
總結
wc命令可用於統計行數,字節數和字符數等,而用於統計命令執行結果的數量的時候非常有效。