Problème grep
Résolu/Fermé
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
-
7 nov. 2007 à 09:53
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 - 8 nov. 2007 à 14:29
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 - 8 nov. 2007 à 14:29
13 réponses
c-moi
Messages postés
81
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
6 juillet 2011
10
7 nov. 2007 à 10:34
7 nov. 2007 à 10:34
Bonjour,
Déjà, vérifie ta variable toto :
echo $toto
Il se peut que tes astérisques soient interprétées dans le cas où des fichiers existent dans le répertoire où tu as affecté la variable toto.
Bonne investigation,
c-moi
Déjà, vérifie ta variable toto :
echo $toto
Il se peut que tes astérisques soient interprétées dans le cas où des fichiers existent dans le répertoire où tu as affecté la variable toto.
Bonne investigation,
c-moi
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
7 nov. 2007 à 11:05
7 nov. 2007 à 11:05
qu'affiche :
toto="1 * * * * /home/thierry/cron.sh" ; echo $?
toto="* * * * /home/thierry/cron.sh" : echo $?
puisque que c'est ce que teste &&
toto="1 * * * * /home/thierry/cron.sh" ; echo $?
toto="* * * * /home/thierry/cron.sh" : echo $?
puisque que c'est ce que teste &&
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
7 nov. 2007 à 12:02
7 nov. 2007 à 12:02
Salut,
toto="1 * * * * /home/thierry/cron.sh" && grep "${toto}" /home/crontabs/site/spool/local/formation/thierry;-))
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
7 nov. 2007 à 12:59
7 nov. 2007 à 12:59
Ben nan jipicy, pour une fois c'est pas ca :
toto=" * * * * /home/thierry/cron.sh" && grep "${toto}" /home/crontabs/site/spool/local/formation/thierry
1 * * * * /home/thierry/cron.sh
toto="1 * * * * /home/thierry/cron.sh" && grep "${toto}" /home/crontabs/site/spool/local/formation/thierry
=> rien !
:-()
toto=" * * * * /home/thierry/cron.sh" && grep "${toto}" /home/crontabs/site/spool/local/formation/thierry
1 * * * * /home/thierry/cron.sh
toto="1 * * * * /home/thierry/cron.sh" && grep "${toto}" /home/crontabs/site/spool/local/formation/thierry
=> rien !
:-()
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
7 nov. 2007 à 16:42
7 nov. 2007 à 16:42
Désolé j'ai pas eu le temps de tester ce matin, essaie ça, inspiré de la soluce plus bas donnéepar de ton collègue :
grep "${toto//\*/\*}" fichier;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
7 nov. 2007 à 14:00
7 nov. 2007 à 14:00
et
toto="0 * * * * /home/thierry/cron.sh" && grep "${toto}" /home/crontabs/site/spool/local/formation/thierry
toto="0 * * * * /home/thierry/cron.sh" && grep "${toto}" /home/crontabs/site/spool/local/formation/thierry
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
7 nov. 2007 à 14:12
7 nov. 2007 à 14:12
Pareil avec 0 !
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
7 nov. 2007 à 14:21
7 nov. 2007 à 14:21
J'ajoute "0 * * * * /home/thierry/cron.sh" dans /home/crontabs/site/spool/local/formation/thierry puis :
toto=" * * * * /home/thierry/cron.sh" && grep "${toto}" /home/crontabs/site/spool/local/formation/thierry
1 * * * * /home/thierry/cron.sh
0 * * * * /home/thierry/cron.sh
toto="0 * * * * /home/thierry/cron.sh" && grep "${toto}" /home/crontabs/site/spool/local/formation/thierry
=> rien !
toto=" * * * * /home/thierry/cron.sh" && grep "${toto}" /home/crontabs/site/spool/local/formation/thierry
1 * * * * /home/thierry/cron.sh
0 * * * * /home/thierry/cron.sh
toto="0 * * * * /home/thierry/cron.sh" && grep "${toto}" /home/crontabs/site/spool/local/formation/thierry
=> rien !
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
7 nov. 2007 à 14:51
7 nov. 2007 à 14:51
est-ce que c'est 1<espace> dans toto et 1<tab> dans le fichier ?
cat -v /home/crontabs/site/spool/local/formation/thierry
cat -v /home/crontabs/site/spool/local/formation/thierry
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
7 nov. 2007 à 14:56
7 nov. 2007 à 14:56
Ce sont des espaces, et pas des tabulations.
detendu
Messages postés
4
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
7 avril 2008
7 nov. 2007 à 14:58
7 nov. 2007 à 14:58
salut Thierrytte,
il suffit de faire ça
toto="1 \* \* \* \* /home/thierry/cron.sh" && grep "$toto" /home/crontabs/site/spool/local/formation/thierry
explication:
les étoiles sont interprété comme de 0 à n fois le caractère espace et non comme des étoiles.
voila
il suffit de faire ça
toto="1 \* \* \* \* /home/thierry/cron.sh" && grep "$toto" /home/crontabs/site/spool/local/formation/thierry
explication:
les étoiles sont interprété comme de 0 à n fois le caractère espace et non comme des étoiles.
voila
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
7 nov. 2007 à 15:08
7 nov. 2007 à 15:08
Bien joué ;-)
Là ou çà se complique, c'est que le contenu de ma variable $toto est issue d'un scan de fichier, dont je cherche les occurences de chaque ligne complète dans un autre fichier
Genre :
while read Ligne;do
grep "^$Ligne$" $Spool_Local/$Hosts/$Files || echo "$Ligne: Non trouvé"
done < $Spool_Distant/$Hosts/$Files
:-)
Là ou çà se complique, c'est que le contenu de ma variable $toto est issue d'un scan de fichier, dont je cherche les occurences de chaque ligne complète dans un autre fichier
Genre :
while read Ligne;do
grep "^$Ligne$" $Spool_Local/$Hosts/$Files || echo "$Ligne: Non trouvé"
done < $Spool_Distant/$Hosts/$Files
:-)
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
8 nov. 2007 à 12:14
8 nov. 2007 à 12:14
grep "${toto//\*/\*}" fichier ca fonctionne;
Mais est-ce que je ne risque pas encore de tomber sur d'autres caractères qui posent problème à part "*", en passant en variablechaque ligne de mon fichier source ?
PS: c'est quoi cette syntaxe sur grep ? c'est la première fois que je la vois !!!
Mais est-ce que je ne risque pas encore de tomber sur d'autres caractères qui posent problème à part "*", en passant en variablechaque ligne de mon fichier source ?
PS: c'est quoi cette syntaxe sur grep ? c'est la première fois que je la vois !!!
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
8 nov. 2007 à 12:22
8 nov. 2007 à 12:22
PS: c'est quoi cette syntaxe sur grep ? c'est la première fois que je la vois !!!
C'est pas propre à "grep" mais au shell (bash en l'occurrence) et plus particulièrement à l'expansion des paramètres, voir "man bash" (entre autre le chapitre Expansion et sa section Remplacement des paramètres).
C'est pas propre à "grep" mais au shell (bash en l'occurrence) et plus particulièrement à l'expansion des paramètres, voir "man bash" (entre autre le chapitre Expansion et sa section Remplacement des paramètres).
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
8 nov. 2007 à 14:29
8 nov. 2007 à 14:29
Ah ben c'était trop simple:
man grep
-F Interprète le motif comme une liste de chaînes
figées, séparées par des Sauts de Lignes (NewLine).
La correspondance est faite avec n'importe laquelle
de ces chaînes.
(ou fgrep)
Merci à tous !
man grep
-F Interprète le motif comme une liste de chaînes
figées, séparées par des Sauts de Lignes (NewLine).
La correspondance est faite avec n'importe laquelle
de ces chaînes.
(ou fgrep)
Merci à tous !