繁体   English   中英

在Linux中无需使用“ cat”命令即可读取大文件的内容

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM