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 :
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
- 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
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