【发布时间】:2011-12-07 08:44:42
【问题描述】:
如何在不打开文件的情况下查找一行并将其显示在 linux 上的文件中?有什么有用的命令吗?文件比较大,内存打不开。
【问题讨论】:
-
添加更多细节,任何编程语言?什么壳? “不打开文件”是什么意思? stackoverflow.com/questions/1429556/…
-
整个文件没有理由必须驻留在内存中才能搜索。通常一次只读取小块,直到满足搜索或达到 eof。打开文件几乎没有商量余地。
-
如果你希望在不打开文件的情况下获得内容,我当然希望你对超级块很友好。
-
“行”由“行分隔符”字符的位置定义(在 UN*X:CR,又名
\n),它可以以任何频率出现在文件中的任何位置。除非您的特定文件具有比这更严格的结构(例如,所有行具有相同数量的字符),否则为了使第 N 行的位置可以以某种方式预测,则无法提前确定文件中的位置“行N" 开始时不会读取整个文件到该点并计算行分隔符。这样做时,您不需要将整个文件保留在内存中 - 丢弃已处理的部分。
标签: linux