如何在 Linux 中使用 Tee 和 Xargs 從標準輸入運行命令
使用命令行時,您可以直接將一個程序(例如生成某些系統信息或統計信息的工具)的輸出作為另一個程序(例如文本過濾或模式搜索工具,如grep、sed或awk,用于進一步處理),使用管道。
可與管道一起使用以構建命令行的兩個最重要的命令行實用程序是:
- xargs – 從標準輸入讀取數據流,然后生成并執行命令行。
- tee – 從標準輸入讀取并同時寫入標準輸出和一個或多個文件。它更像是一個重定向命令。
在這篇簡單的文章中,我們將描述如何在 Linux 中使用 pipes、tee 和 xargs 命令從標準輸入構建和執行多個命令。
使用管道的最簡單語法如下所示,您可能已經在我們許多 Linux 教程的命令中看到過。但是您可以使用多個命令構建更長的命令行::
下面是使用管道將 dmesg 命令的輸出傳遞給 head 命令的示例。
將命令輸出傳遞給另一個命令
如何使用 xargs 運行命令
在此示例中,第二個命令使用 xargs 將多行輸出轉換為單行:
使用 Xargs 運行命令
要計算列表中每個文件的行數/單詞數/字符數,請使用以下命令:
使用 Xargs 計算文件字數
下面的命令查找并遞歸刪除在當前目錄中命名為 linuxmi 的目錄:
帶有選項操作的 find 命令可以-print0 在標準輸出上打印完整的目錄路徑,后跟空字符和-0 xargs標志處理文件名中的空格。
如何在 Linux 中通過命令使用 Tee
此示例顯示如何將命令輸出發送到標準輸出并將其保存到文件中;下面的命令允許您查看Linux 中內存和 CPU 使用率最高的運行進程:
將命令輸出保存到文件
要在現有文件中附加數據,請傳遞-a 標志:
您可以在tee和xargs手冊頁上找到更多信息:
就這樣!