UNIX 文字工具: 導管

UNIX 除了可以將資料流導入或導出純文字檔案之外, 還可以將它導向另一個工具軟體,或是濾器。 這個機制稱為導管 (pipe)。導管符號是 | (通常在鍵盤的 Shift+\ 位置)。 | 的功能就是將它左邊的 stdout 資料變成右邊的 stdin。 所以,只要一個工具軟體的輸出是 stdout, 一個工具軟體的輸入是 stdin,就可以用導管將它們銜接在一起, 變成一個新的工作流程 (pipeline)。

例如

cat -n forty.txt | less
就是將加上列號的 forty.txt 檔案,放進 less 閱讀工具中。再如
tail -23 forty.txt | cat -n
就是將 forty.txt 的後 23 列,加上列號,印在螢幕上。

只要合乎規定,UNIX 並不限定一個流程中可以使用幾次導管。例如您可以說

tail -35 forty.txt | cat -n | less

如果您想要看到一個文字檔案從第 N 列到第 M 列的內容, 可以說

head -M FILE | tail -K
其中 K = M - N + 1。

舉個特例。如果想看到 forty.txt 的第 7 列,就說

head -7 forty.txt | tail -1

習題

  1. 推論
    cat -n forty.txt | head -20 | tail -7 | cat -n
    是什麼意思,然後實驗之。

[ 前一節 ]‧[ 後一節 ]‧[ 回目錄 ]



注意:此處所有文件均為原著,個別的版權宣告日後會一一公布, 整體版面設計亦尚未完成。但仍請勿抄襲文字與圖片,以免觸犯著作權法。

Created: Nov 19, 2000
Last Revised: Nov 19, 2000
© Copyright 2000 Wei-Chang Shann 單維彰

shann@math.ncu.edu.tw