iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 30
0
自我挑戰組

linux 能力upup系列 第 30

Day30 管線命令I

大家都知道在bash執行命令的時候有輸出的資料會出現,那如果我們碰到的資料是需要經過幾道手續才能得到的結果,那要如何處理呢?這個時候就牽涉到管線命令的問題,那這個東西主要是使用"|"這個界定符號。對了,管線命令跟連續下達命令不太一樣。這個我之後會提到。

這個管線命令特別的點在於,管線命令只能處理前面一個指令傳來的正確資訊。也就是標準輸出的資訊,那對於標準錯誤輸出這個部分,管線命令還真的無法處理。

那每一個管線命令後面接的第一個資料一定是指令,不能是別的資料。而且這個指令必須要能夠接受標準輸入的資料。要符合以上條件的指令才是管線命令。這個是要特別記住的點,基本上可以綜合為以下兩點來看。
(1)管線命令只會處理標準輸出,標準錯誤輸出的資料會被忽略掉
(2)管線命令必須要能夠接受來自前一個指令的資料成為標準輸出繼續處理才行

那就要來介紹這個部分的相關指令了,先來介紹命令擷取的部分,主要是cut跟grep這兩隻指令

cut
(1)將一段訊息的一部分取出
(2)處理的訊息是以行為單位
(3)主要用於將同一行的資料進行分解
(4)處理多空格相連的資料時會比較吃力

指令格式
cut -d'分隔字元' -f field <-用於有特定的分隔字元格式
cut -c 字元區間 <-用於排列整齊的訊息

相關參數以及選項
-d:後面接分隔字元,要與-f一起使用
-f:依據-d的分隔字元將一段訊息分割為數段,用-f取出第幾段的意思
-c:以字元的單位取出固定字元的區間

grep
(1)分析一行訊息,只要該行有需要的資訊,就將其提出
(2)支援的語法極多,可以處理很多類型的資料

指令格式
grep (-acinv) (--color=auto) '搜尋字串' filename

相關參數以及選項
-a:將binary檔案以text檔案的方式搜尋資料
-c:計算找到'搜尋字串'的次數
-i:忽略大小寫的不同
-n:輸出行號
-v:反向輸出,就是輸出沒有關鍵字的結果

以上就是本人介紹管線命令的部分,如果有缺漏的部分,也麻煩大家多指教
然後今天是本人鐵人賽的最後一天,但是本人不會棄坑,只是之後的更新可能會比較慢,感謝各位在這一個月的幫助


上一篇
Day29 資料流重新導向II
系列文
linux 能力upup30

1 則留言

我要留言

立即登入留言