Linux常用命令之管道/wc
阿新 • • 發佈:2019-01-24
8、管道命令
“ | ”,豎線符號代表的就是管道符
管道是一種兩個程序間進行單向通訊的機制。因為管道傳遞資料的單向性,所以又稱為半雙工管道。
介紹:
- 管道可以根據一組命令按照資料流向的方式來進行操作。簡單的說,第一個命令執行後,不回顯結果,而是把結果通過管道傳遞給第二個命令,第二個命令處理後再傳給第三個….直到沒有管道符後才終止命令,並回顯最終結果。
- 管道可以把不同的命令組合成強大的指令集合。比如,對資料夾下所有的txt結尾的檔案重新命名,就需要三個管道符號,四個命令完成。
缺點:
- 資料只能從一個程序流向另一個程序(其中一個讀管道,一個寫管道)。如果要進行雙工通訊,需要建立兩個管道。
- 管道只能用於父子程序或兄弟程序間通訊,也就是說管道只能用於具有親緣關係的程序間通訊。
- 管道所傳輸的是無格式的位元組流。
通過管道通訊的兩個程序,一個程序向管道寫資料,另一個從中讀資料。寫入的資料每次都新增到管道緩衝區的末尾,讀資料的時候都是衝緩衝區的頭部讀出資料的。
利用管道檢視/root/install.log檔案的內容並分頁顯示
[root@admin ~]# cat install.log | more
9、wc統計檔案行數、字數、位元組數並顯示
語法:wc [-lwc] filename
選項與引數:
- -l : 統計文字檔案內容的行數
- -w : 統計文字檔案內容的字數。(一個字由空白、跳格或換行符分隔的字串)
- -c : 統計文字檔案內容總的位元組數
- -m :統計檔案的字元數。如果當前系統不支援多位元組字元時,其將顯示與-c引數相同結果。
現有一個a.txt檔案,其內容如下:
[root@admin t2]# cat a.txt
adfasd
234123
adsftgrt
#通過管道命令使用wc命令統計/home/t2/a.txt檔案行數、字數等
[root@admin /]# cat /home/t2/a.txt | wc
3 3 23
代表該檔案內容有3個字串3行23個字母
#直接使用wc檢視該檔案
[root@admin /]# wc /home/t2/a.txt
3 3 23 /home/t2/a.txt
比使用管道命令多顯示了一個檔案路勁及檔名
#修改一下檔案a.txt
[root@admin t2]# cat a.txt
adfasd this is last one
234123
adsftgrt
#統計檔案的行數
[root@admin t2]# wc -l a.txt
3 a.txt
統計行數時,實際統計的是換行符\n,所以存在空行也會算著一行
#統計檔案a.txt的單詞數,單詞之間以空白字元為界定
[root@admin t2]# wc -w a.txt
7 a.txt
#統計檔案a.txt檔案的位元組數
[root@admin t2]# wc -c a.txt
42 a.txt