j'avais besoin de chercher dans un paquet d'epub si il y avait le terme que je souhaitais avoir, j'ai donc fait ce script :

Code:
#! /bin/bash

keywords=$@

function epubsearch() {
 
  data=$(unzip -c "$1")

  for kw in $keywords
  do
    if [[ "${kw:0:1}" == "-" ]]
    then
      if [[ "$(echo "$data" | grep "${kw:1}" -ia)" != "" ]]
      then
        echo 0
        return
      fi
    else
      if [[ "$(echo "$data" | grep "$kw" -ia)" == "" ]]
      then
        echo 0
        return
      fi   
  fi
  done
  echo 1

}

for file in *.epub
do
  if [[ "$(epubsearch "$file")" == "1" ]]
  then
    echo "=> $file"
  fi
done
la recherche dans le fichier se fait par un grep, donc on peut mettre une expression régulière.

et puis on peut mettre - devant une expression pour chercher à ce qu'elle ne soit pas là.

la recherche comme il est là se fait dans tout les fichiers .epub du dossier.

exemple :

nom_du_fichier_bash -sky sky

=> ne trouvera rien car on ne peut pas à la fois avoir le mot sky et pas le mot sky