Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix cat命令加载文件_Unix_Cat - Fatal编程技术网

Unix cat命令加载文件

Unix cat命令加载文件,unix,cat,Unix,Cat,cat命令是否将整个文件加载到主内存中 for i in `cat file.txt`; do # some logic on i done 当文件较大(例如5-6 GB)时,此代码是否会有任何性能问题?cat不会加载整个文件,但上面for循环中的进程替换将 如果每行有一个条目,您可以改为: while read line; # some logic on $line done < file.txt 读行时; #关于$line的一些逻辑 完成代码转换为带STDIN的脚本

cat命令是否将整个文件加载到主内存中

for i in `cat file.txt`; do
    # some logic on i
done

当文件较大(例如5-6 GB)时,此代码是否会有任何性能问题?

cat
不会加载整个文件,但上面for循环中的进程替换将

如果每行有一个条目,您可以改为:

while read line;
    # some logic on $line
done < file.txt
读行时
;
#关于$line的一些逻辑
完成
@pixelbeat的答案是正确的。另外,您可以考虑将管道<代码>文件.txt < />代码转换为带STDIN的脚本。您在循环中执行的逻辑是什么?我试图逐行读取一个大文件。那么哪种方法更好呢?循环中的逻辑是基于分隔符获取数据并将其插入数据库。如果要加载到数据库中,那么使用下面提供的答案可能没什么问题,因为与数据库插入相比,循环基础设施的性能并不重要。但是,如果您有一个巨大的文件,您可能需要考虑数据库上的一些批处理导入功能,因为每行5-6 GB的插入将花费很长时间。