有幾個unix命令可以在兩個文件上運行。通常這樣的命令允許通過使用單個破折號代替文件名從標準輸入中讀取其中一個「文件」的內容。將兩個文件重定向到標準輸入
我只是碰到a technique似乎允許從標準輸入讀取這兩個文件來:
comm -12 <(sort file1) <(sort file2)
我最初不相信的反應是,「這不應該工作標準輸入只會有串聯這兩個文件,命令將不能分辨文件,甚至不能意識到它已經被賦予了兩個文件的內容。「
當然,這種結構確實有效。我已經在cygwin 1.7.7上使用bash 3.2.51對comm
和diff
進行了測試。我很好奇它是如何以及它爲什麼起作用的:
- 這是爲什麼這樣工作?
- 這是Bash擴展,還是直Bourne shell功能?
- 這對我的系統有效,但這種技術是否可以在其他平臺上工作? (換句話說,使用這種技術編寫的腳本是否便攜?)
就是這樣 - 過程替代!我花了很多時間搜索重定向信息,但我的名字錯了。 – 2011-01-20 14:28:51