[英]Read contents of large files without using “cat” command in linux
我正在尝试一种更有效的方式来在Linux中读取文件内容,而不使用“ cat”命令,尤其是对于较大的文件内容,因为在这种情况下cat
只会占用服务器上的内存和CPU。
我想到的一件事是使用grep -v "character-set-which-is-unlikely-in-the-file" filename
但是每次都使用不同的字符集,希望它不会出现在文件中,效率不高。
还有其他想法吗?
如果您只想读取文件,以便对其进行缓存,则最简单的方法可能是:
cat filename > /dev/null
请注意,您无需在屏幕上显示数据即可从磁盘读取数据。 该命令读取文件,并通过将其转储到/ dev / null中来忽略内容,但是它仍然读取所有数据。
如果CPU负载上升,那可能是一件好事,这意味着计算机正在努力工作,并且将早于而不是稍后完成。 但是,如果崩溃 ,则还有其他问题。
如果您出于某些特定原因不使用“ cat”命令,则可以尝试使用“ dd”,但是编写起来更加复杂并且不会更快:
dd if=filename of=/dev/null bs=1M
附录:
这启发了我进行一些测试。 在我的特定计算机上,“ cat”和“ dd”在未缓存时需要24.27-24.31秒才能读取机械磁盘上的大文件,在缓存时需要0.39-0.40秒。 (每个案例进行三个测试,变化很小。)
这两个程序都包含用于写入数据的代码,即使将其转储到/ dev / null也是如此,因此可以预期专门为读取而编写的程序会稍快一些,但是尝试时却得到了相同的时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.