作者fantasywater (prepare myself)
看板LinuxDev
標題Re: [問題] 關於 pipe line 處理檔案
時間Wed May 13 12:42:30 2015
感謝 剛剛用 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
→ tjjh89017: tee似乎不是這樣用的@@ 05/13 12:59
推 yvb: 請寫 >(java...) 不是 > (java...) 不要把 > 和 ( 分開. 05/14 01:58
→ yvb: 請參看 bash manual 的 Process Substitution. 05/14 02:00