2013-04-04 50 views
1

我正在嘗試gunzip一個文件,然後將結果保存在使用mkfifo創建的命名管道中,該命令管道最終將用於連接命令。我看過很多關於使用mkfifo來gzip的例子,但在這種類型的場景中幾乎沒有任何關於gunzipping的東西。我的問題的概述是:gunzip與mkfifo在bash中

獲取兩個* .gz文件的內容,而不實際解壓縮到磁盤。要做到這一點,捕獲gunzip -c * .gz流(這是我想使用命名管道作爲保存流內容的文件的位置)。取兩個命名管道並對它們進行連接。在UNIX代碼的簡化的想法是有點像...

mkfifo pipe1 
mkfifio pipe2 

gunzip -c fileA.gz > pipe1 & 
gunzip -c fileB.gz > pipe2 & 

join pipe1 pipe2 

rm pipe1 pipe2 

任何建議,將不勝感激

+0

你的問題是什麼?這個腳本不工作(除了'mkfifio' typo),還是什麼? – 2013-04-04 14:18:04

回答

1

你並不真正需要的命名管道此。 Bash有一個特殊的語法,可以在一個命令中做到這一點:

join <(gunzip -c fileA.gz) <(gunzip -c fileB.gz) 
+0

在關於該語法的側面提示中,有沒有一種方法可以從槍線中獲取值,以便進行比較? – gjw80 2013-04-04 14:45:11