除了昨天我們提到的 >
、>>
、&>
等導向方式之外,還有一個導向的方式: |
簡單的說,|
會將前面指令的標準輸出,導向到後面一個指令的標準輸入裡面。
說到這邊,有些讀者可能會很好奇:這個指令看起來跟其他的導向方式差不多,為什麼要將 |
這個指令單獨的提出來討論呢?
這邊先賣個關子,我們來實際體會看看。
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
這個字串的紀錄筆數。這類需求千變萬化,雖然有一些視窗化的工具可以協助你做到這些事情,但是遇到某些工具不支援的狀況,你還是可以透過指令,組合出你想到的解法。
今天有關 |
的用法就先介紹到這邊,各位明天見!