之间有什么区别
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,我只是一个临时文件描述符)。
所以两者都应该同样快。 我错了?
答案 0 :(得分:2)
两者最终都会有一个文件描述符到sed处理的文件,不同之处在于谁有效地打开()文件,但其余部分是相同的。与无用的猫和管道形成对比。性能影响可能与grep(尤其是GNU grep)更相关,grep在开放fd和更简单的stdin流上做了非常聪明的事情。