Tester présence variable dans fichier en shel
Résolu
cobra85
Messages postés
148
Statut
Membre
-
cobra85 Messages postés 148 Statut Membre -
cobra85 Messages postés 148 Statut Membre -
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]$;-))