鍍金池/ 教程/ Linux/ shell 學(xué)習(xí)二十二天---計(jì)算行數(shù),字?jǐn)?shù)以及字符數(shù)
shell 學(xué)習(xí)四十五天---xargs
shell學(xué)習(xí)第三天
shell 學(xué)習(xí)十五天---join 連接字段
shell 學(xué)習(xí)第二天
shell 學(xué)習(xí)四十三天---臨時(shí)性文件的建立與使用
shell 學(xué)習(xí)第六天---小結(jié)
shell 學(xué)習(xí)三十三天---關(guān)于重定向
shell 學(xué)習(xí)二十九天---循環(huán)
shell 學(xué)習(xí)二十四天---提取開(kāi)頭或結(jié)尾數(shù)行
shell 學(xué)習(xí)第十天---sed 查找與替換
shell 學(xué)習(xí)第十一天---sed 正則的精確控制
shell 學(xué)習(xí)三十天---break,continue,shift,getopts
shell 學(xué)習(xí)---小結(jié)
shell 學(xué)習(xí)三十一天---函數(shù)問(wèn)題
shell 學(xué)習(xí)第四天---華麗的 printf 輸出
shell 學(xué)習(xí)三十五天---波浪號(hào)展開(kāi)與通配符
shell 學(xué)習(xí)十九天---文本塊排序
shell 學(xué)習(xí)十二天---行與字符串
shell 學(xué)習(xí)二十一天---重新格式化段落
shell 學(xué)習(xí)十八天---文本排序
shell 學(xué)習(xí)十三天---sed 案例分析
shell 學(xué)習(xí)四十一天---列出文件 ls 和 od 命令
shell 學(xué)習(xí)十七天---awk 命令
shell 學(xué)習(xí)三十六天---命令替換
shell 學(xué)習(xí)十六天---join 練習(xí)
shell 學(xué)習(xí)三十二天---read 讀取一行
shell 學(xué)習(xí)二十二天---計(jì)算行數(shù),字?jǐn)?shù)以及字符數(shù)
shell 學(xué)習(xí)小總結(jié)---本章小結(jié)
shell 學(xué)習(xí)第八天---擴(kuò)展正則表達(dá)式(ERE)
shell 學(xué)習(xí)四十二天---使用 touch 更新文件時(shí)間
shell 學(xué)習(xí)二十八天---case 語(yǔ)句
shell 學(xué)習(xí)三十九天---內(nèi)建命令
shell 學(xué)習(xí)第一天
shell 學(xué)習(xí)三十四天---printf 詳解
shell 學(xué)習(xí)二十六天---變量與算數(shù)
shell 學(xué)習(xí)三十八天---執(zhí)行順序和 eval
shell 學(xué)習(xí)四十四天---尋找文件
shell 學(xué)習(xí)二十五天---神器的管道符
shell 學(xué)習(xí)十四天---使用 cut 選定字段
shell 學(xué)習(xí)第五天---基本的I/O重定向
shell 學(xué)習(xí)四十天---awk 的驚人表現(xiàn)
shell 學(xué)習(xí)二十天---sort 的其他內(nèi)容以及 uniq 命令
shell 學(xué)習(xí)二十三天---打印
shell 學(xué)習(xí)第九天---分組
shell 學(xué)習(xí)四十八天---文件校驗(yàn)和匹配
shell 學(xué)習(xí)二十七天---退出狀態(tài)和 if 語(yǔ)句
shell 學(xué)習(xí)四十七天---文件比較 cmp,diff,patch
shell 學(xué)習(xí)第七天---基礎(chǔ)正則表達(dá)式(BRE)
shell 學(xué)習(xí)四十六天---文件系統(tǒng)的空間信息 df 和 du 命令
shell 學(xué)習(xí)三十七天---引用
shell 學(xué)習(xí)小結(jié)

shell 學(xué)習(xí)二十二天---計(jì)算行數(shù),字?jǐn)?shù)以及字符數(shù)

wc 命令可能是 linux 工具集里最古老也最簡(jiǎn)單的工具程序.wc 的默認(rèn)輸出是一行報(bào)告,包括行數(shù),字?jǐn)?shù)以及字節(jié)數(shù): echo this is a test of the emergency broadcast system | wc
1 9 49
如果要求僅輸出部分結(jié)果,可以使用的選項(xiàng)有:-c(字節(jié)數(shù)),-l(行數(shù)),-w(字?jǐn)?shù));
echo test one two three | wc -c
19
echo test one two three | wc -l
1
echo test one two three | wc -w
4
-c 選項(xiàng)原本是表示字符數(shù),但因?yàn)橛卸嘧止?jié)字符集的編碼存在----像是 UTF-8,因此在當(dāng)前系統(tǒng)上,字節(jié)數(shù)已不再等同于字符數(shù)了,也因此,posix 出現(xiàn)了-m 選項(xiàng),用以計(jì)算多字節(jié)字符,對(duì) 8 位字符數(shù)據(jù)而言,它是等同于-c 的.

雖然 wc 最長(zhǎng)處理的是來(lái)自于管道的輸入數(shù)據(jù),但它也接受命令行的文件參數(shù),可以生成一行一個(gè)結(jié)果,再附上報(bào)告:計(jì)算兩個(gè)文件里的數(shù)據(jù)
輸入命令:wc /etc/passwd /etc/group
輸出結(jié)果:

40   61 1804 /etc/passwd  
64   64  874 /etc/group  
104  125 2678 總用量  

wc 的現(xiàn)代版會(huì)隨 locale 而有不同結(jié)果:將環(huán)境變量 LC_CTYPE 設(shè)為想用的 locale,會(huì)影響 wc 把字節(jié)序列解釋為字符或單詞分隔器.
做一個(gè)操作,需要把一個(gè)文件的行數(shù)存在另一個(gè)文件里??墒沁@個(gè) wc 還會(huì)同時(shí)輸出文件名。咋辦?簡(jiǎn)單,用管道處理一下
wc -l demo.txt | awk -F" " '{print$1}'
這樣,我們就把想要的文件行數(shù)給取到了,至于存在另一個(gè)文件里,我們可以把 awk 的 print 結(jié)果重定向到文件啊,

補(bǔ)充:wc 所有選項(xiàng)
-c:統(tǒng)計(jì)字節(jié)數(shù)
-l:統(tǒng)計(jì)行數(shù)
-m:統(tǒng)計(jì)字符數(shù).這個(gè)標(biāo)志不能與-c 標(biāo)志一起使用
-w:統(tǒng)計(jì)字?jǐn)?shù).一個(gè)字被定義為由空白,挑個(gè)或換行字符分隔的字符串.
-L:打印最常行的長(zhǎng)度
-help:顯示幫助信息
--version:顯示版本信息