我想从大型(〜870,000,000行)文本文件中提取某些行组。例如,在50行文件中,我可能需要3-6、18-27和39-45行。
通过浏览Stack Overflow,我发现bash命令是:
tail -n+NUMstart file |head -nNUMend
这是从NUMstart到NUMend的获取单行或多行的最快方法。但是,当读取多组线时,这似乎效率很低。通常,该技术没什么大不了的,但是对于如此大的文件,它将产生巨大的变化。
有没有比在每行中使用上述命令更好的方法了?我假设答案很可能是bash命令,但实际上对任何能最好地完成工作的语言/工具都是开放的。
要显示sed的第3-6、18-27和39-45行:
sed -n "3,6p;18,27p;39,45p" file
还可以从文件中馈送sed。
文件内容foobar
:
3,6p 18,27p 39,45p
用法:
sed -n -f foobar file
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句