我怎樣才能以這種方式使用通訊?

我怎樣才能以這種方式使用通訊?

根據我的理解,我想使用comm -23 file1 file2. file1 是 的結果find,file2 是cut -c43- list.我是否可以將其寫為 1 行而不使用任何文件(除了我命名的列表)?

答案1

進程替換是你的朋友:

$ comm -23 <(find /dir -name 'something') <(cut -c43- list)

該格式<(command)將臨時檔案描述符套用至command整個<( )檔案comm(或任何其他命令)。
有關流程替換的更多資訊請參閱此處。另請檢查man bash

進程替換
進程替換允許使用檔案名稱引用進程的輸入或輸出。它採用<(列表)或>(列表)的形式。進程列表異步運行,其輸入或輸出顯示為檔案名稱。該檔案名稱作為擴展結果作為參數傳遞給當前命令。如果使用 >(list) 形式,寫入檔案將為清單提供輸入。如果使用 <(list) 形式,則應讀取作為參數傳遞的檔案以獲得 list 的輸出。支援命名管道 (FIFO) 或 /dev/fd 命名開啟檔案方法的系統支援進程替換。

相關內容