Linux shell 搜索关键字

直接上shell脚本

#!/bin/bash

if [ $# -eq 3 ]; then

 userFile=$1

 resultFile=$2

 targetFiles=$3

 startNano=`date +%s%N`

 for user in `cat ${userFile}`

 do

   if [ ${#user} -gt 0 ]; then

     record=`grep "${user}" ${targetFiles} | tail -n1 | cut -d" " -f1,2`

     echo "${user}:${record}" >> ${resultFile}

   else

     echo "读取的内容为空字符"

   fi

 done

 endNano=`date +%s%N`

 echo "cost `expr \( ${endNano} - ${startNano} \) / 1000000`ms"

 echo "${resultFile}中的记录数为:`cat ${resultFile} | wc -l`"

else

 echo "执行该shell必须三个参数,参数1:检索条件文件;参数2:结果接收文件;参数3:被检索的文件";

fi



以上的脚本是在指点的文件中进行内容检索,并将检索到的内容写入文件中。

3G的文本文件检索一次大概需要3s左右的时间,如果userFiles中的数据行较多的话,执行耗时是:行数*3s。

这个脚本是单线程执行的,有兴趣的同学可以考虑通过多线程的方式来缩短执行时间。


你可能感兴趣的:(linux,shell,检索关键字)