2016-04-26 31 views
4

是什麼速度差

sed -ne '10{p;q;}' file.txt 

&

sed -ne '10{p;q;}' <file.txt 

之間的區別?

我知道sed在這裏做什麼,我所關心的是輸入通過的方式。只是我拿了一個sed的例子。

我相信(這可能是一個嚴重的誤解太多)在類似案件的東西如下:

exec 4<&0; exec 0<file.txt;sed -ne '10{p;q;}'-;exec 0<&4 

正在發生(由4,我的意思是一個臨時文件描述符) 。

所以兩者應該同樣快。 我錯了嗎

+2

不太正確;在第一種情況下,sed可以使用mmap-ed輸入,這可能會更快,並且可能還有其他更少或更重要的差異。 – gordon

回答

2

兩者都會以sed處理文件的文件描述符結束,區別在於誰有效地打開了文件,但其餘部分是相同的。與無用的貓和管道相反。性能影響可能與grep(特別是GNU grep)更爲相關,他們在開放fd和簡單stdin流之間做出了非常聰明的事情。

+0

感謝您關於'GNU grep'的信息。 – sjsam