一个设备内存2M,一个1G大小的文件,这个文件有若干行,输出其中的带有hello的行以及行数

第一种 linux上的awk命令:

awk '{if($1 == "113.111.211.224"){print $0}}' temp.log

第二种:PHP程序yield ,和awk这个命令用的时间差不多一样,效率是很高的

$file = __DIR__."/temp.log";


foreach(readfilecongent($file) as $k=>$val){
    // echo $k;
    // if(stristr($val,'') !== false){
    //     echo $i ."==". $val."
"; // } // if($k < 1000){ if(stristr($val,'113.111.211.224') !== false){ echo $k ."==". $val."
"; } // } } // echo $file;exit; function readfilecongent($file){ if(file_exists($file)){ $fb = fopen($file,'r'); while(feof($fb) === false){ yield fgets($fb); } } else { echo "文件不存在!"; } }

你可能感兴趣的:(linux,运维,服务器)