Bash 中的管道

Fumbani Banda 2023年1月30日 2022年5月11日
  1. Unix 和 Linux 中的管道
  2. 在 Bash 中使用管道
Bash 中的管道

本教程解釋了管道是什麼以及它們在 Unix 和 Linux 環境中的用法。

Unix 和 Linux 中的管道

Unix 和 Linux 環境中的管道將一個命令的標準輸出作為標準輸入傳遞給另一個命令以進行進一步處理。管道使用管道運算子將命令的輸出作為輸入傳遞給另一個命令。管道運算子是一個豎線,|

使用管道時,資料從左向右流動。管道有助於在命令之間無縫且連續地傳遞資料,而不是使用文字檔案來傳遞資料。

以下語法用於管道。

command1 | command2 | command3

根據上面的語法,command1 的標準輸出通過管道傳送到 command2 作為標準輸入。command2 處理來自 command1 的標準輸入,並將輸出通過管道傳輸到 command3 以供進一步處理。

在 Bash 中使用管道

以下示例演示如何在 Bash 中使用管道。

在下圖中,第一個 ls 命令列出了 test 資料夾的所有內容。第二個 ls 命令將標準輸出作為標準輸入傳遞給 head 命令。

head 命令有 -2 選項;這告訴 head 命令顯示 ls 命令輸出的前兩行。

管道 img1

第一個 cat 命令在下圖中顯示檔案的內容 file1.txt。第二個 cat 命令將標準輸出通過管道傳輸到 grep 命令。

grep 命令匹配其中包含模式 John 的行,一旦找到該行,輸出將通過管道傳送到 tee 命令,該命令將該行寫入 output.txt 檔案。tee 命令還將其標準輸出通過管道傳輸到 wc 命令。

wc 命令計算檔案中的字數、字元數或行數。wc 的選項已設定為 -mwl-m 選項告訴 wc 命令計算檔案中的字元數並將其列印到螢幕上。

使用 -w 選項統計檔案中的字數,使用 -l 選項統計檔案中的行數,並將數字通過終端列印到標準輸出。

output.txt 檔案有 1 行、4 個單詞和 21 個字元。

管道 img2

Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub