Linux 在zip文件上搜索字符串的最快grep

Linux 在zip文件上搜索字符串的最快grep,linux,bash,shell,grep,centos,Linux,Bash,Shell,Grep,Centos,我有一份多达5万人的名单。我需要在日志中搜索,这些日志位于多个zip文件中。这些zip文件位于不同的文件夹中,并且很大(高达450GB)。一个zip文件中有多个文件 现在我正在迭代每个zip文件和每个文件的日志文件,并在其中搜索名称 cd /disk1/ABCDEFArchive/ while read pl; do echo Searching $pl for i in 3 3-AB 3-CD 3-EF 4 4-AB 4-CD 4-EF 5 5-AB 5-CD 5-EF do

我有一份多达5万人的名单。我需要在日志中搜索,这些日志位于多个zip文件中。这些zip文件位于不同的文件夹中,并且很大(高达450GB)。一个zip文件中有多个文件

现在我正在迭代每个zip文件和每个文件的日志文件,并在其中搜索名称

cd /disk1/ABCDEFArchive/

while read pl; do
  echo Searching $pl

  for i in 3 3-AB 3-CD 3-EF 4 4-AB 4-CD 4-EF 5 5-AB 5-CD 5-EF 
  do
    cd web$i
    for j in 2017-09 2017-10 2017-11 2017-12 2017-01 2017-02 
    do
      for k in $(unzip -l ABCDEF-${j}.zip | awk '{print $4}' | grep ABCDEF)
      do
        echo "searching $pl in   web$i ===>>> ABCDEF-${j}.zip ===>>> $k  "
        isexists=$(unzip -p ABCDEF-${j}.zip $k  | grep "=${pl}" | head -1 )
        if [[ ! -z "$isexists" ]]; then
          mysql -e "update test.product_list_tobedeleted set foundinlogs=1 where list_name =\"${pl}\";"
      echo "$pl@@@$isexists" >>${ScriptPath}/ProductlistFound.csv
          break 3   
        fi
     done
   done 
   cd ..
  done
但自一个月以来,它的运行速度非常缓慢,仍以3000的名义运行


我还尝试了一些类似于在zip文件中找到的工作,而没有在每个日志文件中进行迭代等,但这些工作更糟糕

我猜您的CPU有限(由于解压缩了太多数据)。你唯一能做的就是并行化(在单独的后台进程中运行外部循环的块)。视差搜索不起作用或会返工。因为如果在文件中找到名称。它将跳过所有serachis