【发布时间】:2014-07-16 11:48:48
【问题描述】:
我有一个大文件 (1Gb),我需要使用记录号提取其中的几行。我用 sed 编写了我的脚本,但由于花费了太多时间,我决定对其进行调查。 事实证明,当我运行类似 sed -n '15689,15696p' 文件名 打印很快,但之后我有一个时间延迟,这让我的脚本变得非常慢。用 awk 做同样的任务,延迟更小,但它仍然存在!我用于 awk 的命令行是: awk 'NR>=15689 && NR
我尝试只打印一行(sed -n '15689p' 文件名),但出现了同样的问题!
我想知道是否没有人以前见过这种情况并且知道如何摆脱这种愚蠢的延迟。在我看来这是一个大问题,因为这个延迟发生在打印任务之后!我已经在此论坛和其他论坛中进行了搜索,但没有看到有关此问题的问题。 有人能帮我吗? 谢谢
【问题讨论】:
-
如果您在打印您想要的行后告诉
awk“退出”,这有帮助吗?awk(和sed)不知道他们已经完成,除非你告诉他们完成/退出。如果你不这样做,他们仍然需要遍历文件的其余部分。 -
我认为这可能会减少时间
awk 'NR==15689{print; exit}'
标签: bash shell awk sed timedelay