管道命令操作符是:”|”,它僅能處理經由前面一個指令傳出的正確輸出信息,也就是 standard output 的信息,對於 stdandard
error 信息沒有直接處理能力。然後,傳遞給下一個命令,作為標准的輸入 standard input.
注意:
1、管道命令只處理前一個命令正確輸出,不處理錯誤輸出
2、管道命令右邊命令,必須能夠接收標准輸入流命令才行。
作用接收標准輸入的命令才可以用作管道右邊。否則傳遞過程中數據會拋棄。 常用來作為接收數據管道命令有:sed,awk,cut,head,top,less,more,wc,join,sort,split 等等,都是些文本處理命令。
1.cut命令
cut命令用於截取字符串,顯示到標准輸出上。截取信息以行為單位。
-c, --characters=LIST :以字符為單位。
-d, --delimiter=DELIM :表示分隔符,默認情況下為TAB。
-f, --fields=LIST :以字段為單位。
2.grep
grep是一個文本搜索工具,用於查找指定的匹配,並輸出到標准輸出上。支持正則表達式。
-c, --count :只是輸出文件中匹配的行的總數
-i, --ignore-case :忽略大小寫。
-n, --line-number :輸出時加上行號。
-v, --invert-match :只顯示不包含匹配的行。
3.sort
sort命令用於將文件內容排序,顯示到標准輸出上。排序是根據某個或多個關鍵字進行排序。sort默認以第一列數據來排序
-b, --ignore-leading-blanks :忽略每行前面開始出的空格字符和制表符。
-f, --ignore-case :忽略大小寫。
-M 以月份的名字來排序
-n 使用純數字排序
-r 反向排序
-t 分隔符,默認為Tab
-k 以給定的區間來排序
4.uniq
將結果去重復,對於重復行僅顯示一行。
-c, --count :顯示輸出時,在每行的行首加上該行在文件中出現的次數。
-d, --repeated :只顯示重復行。
-i, --ignore-case :忽略大小寫。
-u, --unique :只顯示文件中不重復的行。
5.wc
對結果進行統計。
-l 僅列出行
-w 僅列出多少字
-m 多少字符
6.tee
tee會將數據存在文件中的同時,輸出給管道。
-a 以累計(append)的方式將數據寫到文件file中
7.tr
刪除一段信息中的某一段字符串,支持正則表達式。
-d 刪除字符串
-s 替換重復的字符串
8.col
-x 將tab健換成對等的空格健;
-b 在文字內有反斜槓時,僅保留反斜槓最後接的那個字符。
9.join
將兩個文件中指定欄位相同的行連接起來。即按照兩個文件中共同擁有的某一列,將對應的行拼接成一行。
-i :忽略大小寫
-t CHAR :以指定字符作為輸入輸出的分隔符
-1 代表第一個文件要的比較字段
-2 代表第二個文件要的比較字段
join 默認以空白字符做分隔符。
在使用join之前所處理的文件要事先經過排序,否則有些對比的項目會被忽略。
10.paste
將兩個文件對應行鏈接在一起。
-d指定鏈接的分隔符,默認是tab間隔符
- 如果文件將文件位置改為-,表示接收來自standard input的輸入。
11.expand
將tab鍵按指定空格數顯示
-t 指定空格數數量
12.split
-b 將文件按指定大小分割。
-l 以行數來進行分割
13.xargs
xargs構造一個命令行,該命令行由指定的命令,選項以及從標准輸入按順序讀取的參數來組成;並確保讀取的參數在長度和數量上符合xargs選項指定的約束。然後,xargs調用該命令行,並等待執行完成。
從標准輸入讀取的參數必須用空白字符(不在引號中)或者是換行符(未轉義)來分隔。不含雙引號和換行符的字符串,可以用雙引號來引起來。不含單引號和換行符的字符串可以用單引號引起來。未引起來的字符可以在前面用\來轉義。
-0 如果輸入的數據含有特殊字符比如`,\,空格等,這個參數指定其為一般字符意義。
-e 後面接遺傳字符串,當xargs讀取到這個字符串時,就停止。
-p 在執行每個命令的參數時都會詢問。
-n 後面接次數,即每次命令執行時要使用幾個參數。
若xargs後面沒有接任何命令時,默認以echo來進行輸出。