Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/11/2014, à 12:25

Link_Octree

[Bash] Vérifier qu'un fichier ne contient pas un mot-clés

Hello,

J'ai un fichier.txt qui est censé contenir un mot-clés. Il arrive parfois que ce mot-clés soit introuvable (quand le fichier a mal été téléchargé) je voudrais alors re-télécharger ce même fichier jusqu'à ce que le mot clés soit bel est bien présent dans le fichier.txt.

J'ai essayé BEAUCOUP de lignes de codes censées faire ceci, sans succés, je pense faire une erreur de syntaxe mais après une heure d'essais, je désespère :S

Voilà mon code actuel:

while [ grep -v -q "MotCle" prefixe_${nom_fichier}.html ]
		do
		wget ...
		done

Si une erreur vous saute au yeux, merci de m'en faire part.

Dernière modification par Link_Octree (Le 28/11/2014, à 12:28)

Hors ligne

#2 Le 28/11/2014, à 12:35

Sciensous

Re : [Bash] Vérifier qu'un fichier ne contient pas un mot-clés

il faut enlever les crochets du test []


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#3 Le 29/11/2014, à 07:00

sputnick

Re : [Bash] Vérifier qu'un fichier ne contient pas un mot-clés

until grep -q "\bMotCle\b" "prefixe_${nom_fichier}.html"; do
	wget ...
done

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#4 Le 02/12/2014, à 09:46

Link_Octree

Re : [Bash] Vérifier qu'un fichier ne contient pas un mot-clés

Merci pour votre aide Sciensous & sputnick smile

Je voudrais ajouter une sécurité pour sortir de la boucle et abandonner si au bout de disons 5 tentatives le mot clé n'est toujours pas trouvé dans le fichier téléchargé.
J'ai une vague idée de comment interfacer çà avec mon code, mais encore une fois je bloque sur la syntaxe depuis plus de demi heure, j'ai essayé avec let, avec un exemple int, pas moyen d'arriver à quelque chose :S

let "compteur=0"
until grep -q "\bMotCle\b" "prefixe_${nom_fichier}.html" || compteur <=7
     do
     wget ...
     let "var++"
done

Merci d'avance !

Dernière modification par Link_Octree (Le 02/12/2014, à 09:47)

Hors ligne

#5 Le 02/12/2014, à 14:39

sputnick

Re : [Bash] Vérifier qu'un fichier ne contient pas un mot-clés

let ca fait un peu dépassé, on peut faire de l'arithmétique avec la forme

(( ))
count=0 # pas nécessaire, à toi de voir
until grep -q "\bMotCle\b" "prefixe_${nom_fichier}.html"; do
	wget ...
        ((++count >= 5)) && break
done

Voir http://wiki.bash-hackers.org/syntax/arith_expr

Dernière modification par sputnick (Le 02/12/2014, à 14:40)


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne