管線命令(pipe)
管線命令使用【|】界定符號
管線命令只能處理【|】前面一個指令傳來的正確資訊,也就是 standard output 的資訊,對於 standard error output沒有直接處理的能力
管線【|】後面接的是指令,這指令要能接受 standard input 的資料
standard output(stdout) : 標準輸出,指令執行所回傳的正確訊息
standard input(stdin) : 標準輸入,執行指令前所輸入的資料
standard error output(stderr) : 標準錯誤輸出,指令執行失敗所回傳的錯誤訊息
(如ls,less,head等為能接受standard input的指令 ; cd,cp,mv 等指令則無法進行管線命令)
例如
截取命令 : cut,grep
cut 取想要的部分
cut -d '分隔字元' -f fields 用在有分隔字元
-d: 後面加分隔字元
-f: 根據 -d 的分隔字元將一行訊息分成數段,fields用數字表示,為 -f 取第幾段的意思
cut -c 字元間隔 用於排列整齊的訊息
-c: 以字元為單位取出固定字元區間
grep 取有想要的字元的那行
grep 【-civ】 【--color=auto】 '字串' filename
-c: 計算找到'字串'的次數
-i: 大小寫是為相同
-v: 顯示出沒'字串'內容的那一行
--color=auto: 找到的 '字串' 部分加上顏色顯示
排序命令 : sort,uniq,wc
sort 資料排序
sort 【-fbMnrtk】 【file or stdin】
-f: 大小寫是為相同
-b: 忽略最前面的空百字元部分
-M: 以月份排序
-n: 純數字排序(數字大小排序時用到)
-r: 反向排序
-t: 後面接 '分隔字元' 跟 -k 一起使用
-k: 跟前面 -f 用法相同,輸入數字,取第幾段的字元來排序
數字排序
沒加 -n 的差異,預設是文字排序,所以當要數字排序時,會沒有辦法排序
uniq 排序完後,重複的資料只列出一行
uniq 【-ic】
-i: 大小寫是為相同
-c: 計算重複字串次數
wc 計算資料數目
wc 【-lwm】
-l: 只列行數
-w: 只列英文單字數
-m: 只列字元數
tr 刪除一段訊息中的文字,或文字交換
tr -d 'word'
-d: 刪除訊息中的 word 這字串
tr -s 'word' 'test'
-s: test 字串取代掉 word 字串