1. 程式人生 > >Linux常用命令之管道/wc

Linux常用命令之管道/wc

8、管道命令

“ | ”,豎線符號代表的就是管道符
管道是一種兩個程序間進行單向通訊的機制。因為管道傳遞資料的單向性,所以又稱為半雙工管道。
介紹:

  • 管道可以根據一組命令按照資料流向的方式來進行操作。簡單的說,第一個命令執行後,不回顯結果,而是把結果通過管道傳遞給第二個命令,第二個命令處理後再傳給第三個….直到沒有管道符後才終止命令,並回顯最終結果。
  • 管道可以把不同的命令組合成強大的指令集合。比如,對資料夾下所有的txt結尾的檔案重新命名,就需要三個管道符號,四個命令完成。

缺點:

  1. 資料只能從一個程序流向另一個程序(其中一個讀管道,一個寫管道)。如果要進行雙工通訊,需要建立兩個管道。
  2. 管道只能用於父子程序或兄弟程序間通訊,也就是說管道只能用於具有親緣關係的程序間通訊。
  3. 管道所傳輸的是無格式的位元組流。

通過管道通訊的兩個程序,一個程序向管道寫資料,另一個從中讀資料。寫入的資料每次都新增到管道緩衝區的末尾,讀資料的時候都是衝緩衝區的頭部讀出資料的。

利用管道檢視/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個字串323個字母

#直接使用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