其中awk有两个输出函数:print和printf。
- 他们的实现有
awk很大不同吗? - 关于性能/速度有什么区别(如果可能的话——理论上,不仅仅是
time命令行上的“”)? - 他们使用相同的系统调用吗?
print函数在末尾输出一个换行符;printf除非要求,否则不会。print参数转换为字符串,然后将它们发送到由 OFS(输出字段分隔符)分隔的输出。printf再使用双精度格式(%16.8g或其他格式)和类似操作对其进行格式化。write(2)用于两者或类似的东西,但将有代码(可能<stdio.h>)在其之上分层。所有这些加起来就是:
print比 . 更简单(因此更快)printf。print如果它可以满足您的需要,请使用;printf当它做你需要的时候使用。而且使用asprintf后跟print可能会比printf直接使用慢,所以不要。
如有疑问,请测量。