除了昨天我們提到的 >、>>、&> 等導向方式之外,還有一個導向的方式: |
簡單的說,| 會將前面指令的標準輸出,導向到後面一個指令的標準輸入裡面。
說到這邊,有些讀者可能會很好奇:這個指令看起來跟其他的導向方式差不多,為什麼要將 | 這個指令單獨的提出來討論呢?
這邊先賣個關子,我們來實際體會看看。
ls -al | less
我們可以發現,畫面看起來不再像是一般的 ls -al 所產生的畫面,更像是用 less 看到的文件內容。
這在檔案非常多時,會很實用
ls -al /usr/bin | less
搭配這個方式,如果我想要對輸入排序,可以用 sort
NAME
       sort - sort lines of text files
用法如下
ls -al /usr/bin | sort
如果我想要搜尋某個字串,可以用 grep
NAME
       grep, egrep, fgrep - print lines matching a pattern
用法如下
ls -al /usr/bin | grep base
-rwxr-xr-x  1 root root       37248 Jan 23  2020 base64
-rwxr-xr-x  1 root root       28920 Jan 23  2020 basename
-rwxr-xr-x  1 root root       54088 Jul 27  2018 update-mime-database
如果我想要計算行數,可以用 wc
NAME
       wc - print newline, word, and byte counts for each file
用法如下
ls -al /usr/bin | wc -l
946
如果我想看搜尋後結果的行數,可以這樣用
ls -al /usr/bin| grep base | wc -l
3
說了這麼多用法之後,這邊可以提到一個 linux 設計的觀念。
在前面的範例中,相信各位可以感覺到,其實 linux 這個作業系統,提供的東西是解決問題的工具。像是 wc、grep⋯⋯功能都非常的單純。
但是,透過指令之間的串連,我們可以自由的解決我們遇到的問題。
比方說:
404 這個字串的紀錄筆數。這類需求千變萬化,雖然有一些視窗化的工具可以協助你做到這些事情,但是遇到某些工具不支援的狀況,你還是可以透過指令,組合出你想到的解法。
今天有關 | 的用法就先介紹到這邊,各位明天見!