next up previous contents
Next: 實機練習題 Up: 資料導向與管線處理 Previous: 連續命令   Contents

管線命令 (pipe)

  • 管線命令的處理

    \begin{picture}(150,110)
\setlength{\unitlength}{1mm}
\put(0,5){\dashbox{}(30,1...
...r(0,-1){11}}
\put(43,0){\line(0,1){20}}
\put(98,0){\line(0,1){20}}
\end{picture}
    1. 例題:使用 ls 指令輸出後的內容,被 less 讀取, 並且利用 less 的功能前後翻動相關的資訊。
      [root@linux ~]# ls -al /etc | less
      
    2. 習題:使用 ls 指令輸出/home/csie 內容後,其被 more 讀取。
  • 擷取命令 cut:可以將一段訊息的某一段『切』出來, 處理的訊息以『行』為單位。
    1. cut 指令:
      [root@linux ~]# cut -d'分隔字元' -f fields
      [root@linux ~]# cut -c 字元區間
      選項:
      -d  :後面接分隔字元。與 -f 一起使用;
      -f  :依據 -d 的分隔字元將一段訊息分割成為數段,用 -f 取出第幾段;
      -c  :以字元 (characters) 的單位取出固定字元區間;
      
    2. 將 PATH 變數取出,找出第三個路徑。
      [root@linux ~]# echo $PATH
      /bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games:
      [root@linux ~]# echo $PATH | cut -d ':' -f 5
      # 以 : 作為分隔符號,第五個是 /usr/local/bin。
      # 若要列出第 3 與第 5 個?
      [root@linux ~]# echo $PATH | cut -d ':' -f 3,5
      ## 習題:取出 PATH 變數之第 2 與第 4 個路徑。
      
    3. 將 export 輸出的訊息,取得第 12 字元以後的所有字串
      [root@linux ~]# export
      declare -x HISTSIZE="1000"
      declare -x INPUTRC="/etc/inputrc"
      declare -x KDEDIR="/usr"
      declare -x LANG="zh_TW.big5"
      ......其他省略......
      [root@linux ~]# export | cut -c 12-
      HISTSIZE="1000"
      INPUTRC="/etc/inputrc"
      KDEDIR="/usr"
      LANG="zh_TW.big5"
      ......其他省略......
      # 用 -c 可以處理比較具有格式的輸出資料。
      # 還可以指定某個範圍的值,例如第 12-20 的字元為 cut -c 12-20 等。
      ## 習題:取出 /etc/issue 之第 1 至 13 個字元。
      
    4. 用 last 將本月登入者的