【发布时间】:2017-05-04 17:07:43
【问题描述】:
我已经学会了在 bash 中循环遍历行
while read line; do stuff; done <file
什么是更节省时间/资源的方法?
【问题讨论】:
-
awk(这是一个填充物)
-
取决于
stuff是调用其他shell工具,还是只是处理文本。 -
Shell if 为启动您的操作系统提供了命令并将其输入和输出管道传输到任何需要的地方。为了从文件中读取数据并对其进行处理,请使用为该特定工作制作的工具。不要将 shell 与文本处理器或编程语言混淆。
-
您应该在需要加快循环速度的地方发布您的问题,而不是链接一个问题(答案可能有争议并取决于使用场景)。 过早的优化是万恶之源——DonaldKnuth
-
这是在shell中读取文件的最有效方式。问题是,您是否应该在 shell at all 中遍历文件?一般经验法则:如果您对正在读取的数据做任何比将其作为参数传递给另一个程序更复杂的事情,那么您可能在不应该使用的情况下使用了 shell。
标签: bash performance shell loops