Re: [問題] 關於 pipe line 處理檔案

看板LinuxDev作者 (prepare myself)時間10年前 (2015/05/13 12:42), 10年前編輯推噓1(102)
留言3則, 2人參與, 最新討論串2/2 (看更多)
感謝 剛剛用 tar -O 可以了,另外想再請問一下有辦法讓 pipe 導到 2 個 process 讓這兩個 process 同時處理同一個 stdin 嗎? 我在網路上有看到這樣的做法 http://goo.gl/yvHm8g 我照著使用 tar -O -zxvf my.tar.gz | tee > (java -jar processing.jar) | java -jar processing.jar 讓同一個 process 同步執行兩次,可是卻會不斷的出現錯誤訊息 syntax error near unexpected toke '(' 如果我把掛號拿掉又會出現 tee:unknown option -- j 不知道哪裡寫錯,或是有 tee 以外其他的作法..? ※ 引述《fantasywater (prepare myself)》之銘言: : 請問一下,我有一個 tar.gz 檔解出來是一個大概 2G 的 txt 檔, : 但是因為解壓縮的過程很長,想說在他解壓縮的同時去處理部分已經解壓縮出來的檔案 : 假設 tar.gz 的檔名是 my.tar.gz,解出來的文件叫做 my.txt : ----------------------------------------------------------------------------- : 所以我在 command 下了 tar -zxvf my.tar.gz | java -jar processing.jar : 然後在 processing 程式當中去讀取 stdin : 但是現在 log 看起來 stdin 裡面讀到的只有文件的檔名,也就是只有讀到 my.txt : 沒有讀到 my.txt 真正要處理的內容,請問大概要怎麼去調整,還是說有什麼方法 : 在解壓縮的過程中可以把 my.txt 的內容放到 stdout 中? 或是在程式去讀取到那塊 : 存放內容的記憶體? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.139.196 ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1431492153.A.1BF.html ※ 編輯: fantasywater (1.164.139.196), 05/13/2015 12:43:01

05/13 12:59, , 1F
tee似乎不是這樣用的@@
05/13 12:59, 1F

05/14 01:58, , 2F
請寫 >(java...) 不是 > (java...) 不要把 > 和 ( 分開.
05/14 01:58, 2F

05/14 02:00, , 3F
請參看 bash manual 的 Process Substitution.
05/14 02:00, 3F
文章代碼(AID): #1LKjOv6_ (LinuxDev)
討論串 (同標題文章)
文章代碼(AID): #1LKjOv6_ (LinuxDev)