Tester présence variable dans fichier en shel
Résolu
cobra85
Messages postés
132
Date d'inscription
Statut
Membre
Dernière intervention
-
cobra85 Messages postés 132 Date d'inscription Statut Membre Dernière intervention -
cobra85 Messages postés 132 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à tester la présence d'une variable qui ce trouve à l'intérieur d'un fichier. Si cette cette variable existe: continuer l'exécution du script sinon sortir.
Le script qui analyse le fichier est en shell.
j'ai pensé a faire:
if(P330)
{
script à éxécuter
}
else
{
}
merci
Je cherche à tester la présence d'une variable qui ce trouve à l'intérieur d'un fichier. Si cette cette variable existe: continuer l'exécution du script sinon sortir.
Le script qui analyse le fichier est en shell.
j'ai pensé a faire:
if(P330)
{
script à éxécuter
}
else
{
}
merci
A voir également:
- Tester présence variable dans fichier en shel
- Fichier bin - Guide
- Fichier epub - Guide
- Flash drive tester - Télécharger - Divers Utilitaires
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
9 réponses
Salut,
Qu'entends-tu par "variable" ? Un mot dans un fichier ?
Qu'entends-tu par "variable" ? Un mot dans un fichier ?
grep -q "mot_à_chercher" fichier if [ "$?" = "0" ] then exécuter else ... fi
Salut,
J'ai testé ya commande mais rien je n'arrive pas à la faire fonctionner:
J'ai testé ya commande mais rien je n'arrive pas à la faire fonctionner:
#$ nl adress_coordonnee1.awk { for fich in *.txt; do grep -q "mot_à_chercher" fichier if [ "$?" = "0" ] then sed "s/address /'/g" adress2_${fich%.*}.txt > adress1_${fich%.*}.txt sed "s/rue/'/g" adress1_${fich%.*}1.txt > adress2_${fich%.*}.txt #permet de vider la table avant de la remplir echo 'echo "truncate table "adresse_'${fich%.*}'" ;" | mysql fournisseur ' > ADRESSE_FINAL_${fich%.*}.sql #affiche "insert into ..." dans un fichier nommé adress_text.csv echo 'echo "insert into adresse_'${fich%.*}' (adresse, rue) values '> adress_text.csv #permet d'inserer les données de adress1_coordonnee1.txt dans adress_text.csv tout en gardant en mémoire les valeurs déja inscrites dans ce fichier. cat adress1_${fich%.*}.txt >> adress_text.csv #permet de supprimer les retours chariots du fichier adress_text.txt puis de tout mettre dans un fichier adress1_text.csv tr -d '\r\n' < adress_text.csv > adress1_text.csv sed 's/)(/), (/g' adress1_text.csv > adress2_text.csv sed 's/)*$/);" | mysql founisseur/g' adress2_text.csv > adress3_text.csv echo -e '\n' >> adress3_text.csv cat adress3_text.csv >> ADRESSE_FINAL_${fich%.*}.sql #permet de supprimer définitivement les fichiers intermédiaires générés après l'éxécution du script sans les mettre dans la poubelle. Il ne restera que ADRESSE_FINAL.sql rm adress3_${fich%.*}.txt rm adress2_${fich%.*}.txt rm adress1_${fich%.*}.txt rm adress_text.csv rm adress1_text.csv rm adress2_text.csv rm adress3_text.csv else fi done }
Alors... dans :
grep -q "mot_à_chercher" fichieril faut remplacer "mot_à_chercher" par le mot dont tu veux tester la présence et "fichier" par "$fich". Sans quoi forcément ça marche pas ;-((
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
j'ai fait comme indiqué, mais le fichier ne se lance pas. En faite, il n'aime pas la condition ifet les arguments qui lui sont propre
j'ai fait comme indiqué, mais le fichier ne se lance pas. En faite, il n'aime pas la condition ifet les arguments qui lui sont propre
Affiche ton script revu et corrigé.
Affiche un extrait d'un fichier contenant le mot_clé recherché et un extrait d'un fichier ne contenant pas le mot_clé recherché.
Merci.
Affiche un extrait d'un fichier contenant le mot_clé recherché et un extrait d'un fichier ne contenant pas le mot_clé recherché.
Merci.
Voici un extrait contenant le mot clé: P330
et voici le même fichier sans le mot clé
!#CODE P330 !# Nom: M. Dumont address 33 rue Av du Gnl De Gaulle Nom: Mme address 167 rue Place Alésia Ville Paris Nom: M. Dumont address 10 rue impasse du bois
et voici le même fichier sans le mot clé
!# address 33 rue Av du Gnl De Gaulle address 167 rue Place Alésia address 10 rue impasse du bois
[tmpfs]$ cat plop !#CODE P330 !# Nom: M. Dumont address 33 rue Av du Gnl De Gaulle Nom: Mme address 167 rue Place Alésia Ville Paris Nom: M. Dumont address 10 rue impasse du bois [tmpfs]$ cat plop2 !# address 33 rue Av du Gnl De Gaulle Nom: Mme address 167 rue Place Alésia Ville Paris Nom: M. Dumont address 10 rue impasse du bois [tmpfs]$ cat foo.sh #! /bin/sh #set -xv for fich in plop*; do grep -q "P330" ${fich} if [ "$?" = "0" ] then echo "Le fichier ${fich} contient bien le mot clé." else echo "Le fichier ${fich} ne contient pas le mot clé." fi done [tmpfs]$ ./foo.sh Le fichier plop contient bien le mot clé. Le fichier plop2 ne contient pas le mot clé. [tmpfs]$;-))