我在這里有一個我不明白的問題:
cat abc.dat | tee bcd.dat | tr ab ba > cde.dat
在這種情況下,我理解翻譯部分,但我對管道 | 的內容有點困惑。確實,有人告訴我它需要一個程式的標準輸出和另一個程式的標準輸入。如果我試圖解釋這一點,請糾正我,如果我錯了,但您正在獲取 abc.dat 的內容,將輸出復制到 bcd.dat,然后從 bcd.dat 獲取內容并翻譯 a 和 b 的實體分別放入 b 和 a,然后將其放入 cde.dat 中?
官方的回答是:abc.dat復制到bcd.dat。并將 abc.dat 復制到 cde.dat,但將“a”替換為“b”,將“b”替換為“a”。但是為什么 abc.dat 被復制到 cde.dat 而不是 bcd.dat 呢?管道不繼續嗎?
uj5u.com熱心網友回復:
“官方”的回答措辭不佳。既不知道tee也不tr知道abc.dat; 只是碰巧它讀取的tee是從什么tee讀取,從cat什么cat讀取abc.dat。
uj5u.com熱心網友回復:
該tee實用程式從標準輸入讀取和寫入首先這到stdout,和二來所有指定的引數檔案。在您的情況下, stdin 被寫入 stdout 和 file bcd.dat。后面的管道tee將 的標準輸出鏈接tee到tr. 盡管資料是相同的,但它不是通過bcd.dat管道傳輸到的檔案內容tr。它是初始的輸出,cat它又是檔案的內容abc.dat。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/387050.html
