Galere sur script shell
Résolu/Fermé
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
-
17 sept. 2007 à 19:09
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 - 20 sept. 2007 à 10:40
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 - 20 sept. 2007 à 10:40
A voir également:
- Galere sur script shell
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
22 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
17 sept. 2007 à 19:15
17 sept. 2007 à 19:15
Salut,
Essaie plutôt comme ça :
Essaie plutôt comme ça :
if [ "$(cat $file | grep r${i} | wc -l)" -gt "1" ];-))
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
2
18 sept. 2007 à 11:17
18 sept. 2007 à 11:17
merci,
cependant ma commande sed ne fonctionne pas
j'ai essayé egualement
mais ça ne fonctionne pas non plus , je n'ai plus de message d'erreur mais les declarations "int r0; int r1;..." ne se font pas
j'ai du me tromper dans la syntaxe, mais où???
cependant ma commande sed ne fonctionne pas
j'ai essayé egualement
sed -i -e '/\<hoplahop]\>/a/\<\nint r'${i}'\>/' $file
mais ça ne fonctionne pas non plus , je n'ai plus de message d'erreur mais les declarations "int r0; int r1;..." ne se font pas
j'ai du me tromper dans la syntaxe, mais où???
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
18 sept. 2007 à 11:33
18 sept. 2007 à 11:33
Essaie ça dans un shell et dis-moi si ça passe :
i="1"; sed '/\<hoplahop\>/a\\nint r'${i}'' ton_fichier;-))
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
2
18 sept. 2007 à 11:46
18 sept. 2007 à 11:46
ben ça fonctionne dans le terminal , une fois mis dans le script ça ne fonctionne plus...
j'ai mis un echo de la variable $i et elle s'affiche bien , donc je passe bien dans ma boucle
a partir de là , .. ben je sais pas
j'ai mis un echo de la variable $i et elle s'affiche bien , donc je passe bien dans ma boucle
a partir de là , .. ben je sais pas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
2
18 sept. 2007 à 11:52
18 sept. 2007 à 11:52
c'est bon , ça mache, il me manquer dans le script un espace entre le a et l'antislash
encore merci pour tout
sed -i -e '/\<hoplahop\>/a \\nint r'${i}'' mon_fichier
encore merci pour tout
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
2
18 sept. 2007 à 12:01
18 sept. 2007 à 12:01
encore un autre petit truc , je voudrai que le
avec sed je fais ça :
je ne pense pas que ça fonctionnerai avec le if, donc ma question est : comment faire?
if [ "$(cat $file$tmp0 | grep r${i} | wc -l)" -gt "0" ]ne soit effectuer que sur le code non commenter ,
avec sed je fais ça :
/\/\*/,/\*\//!(merci jipicy)
je ne pense pas que ça fonctionnerai avec le if, donc ma question est : comment faire?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
18 sept. 2007 à 12:15
18 sept. 2007 à 12:15
Essaye comme ça :
if [ "$(sed '/\/\*/,/\*\//d' $file$tmp0 | grep r${i} | wc -l)" -gt "0" ];-))
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
2
18 sept. 2007 à 12:56
18 sept. 2007 à 12:56
impecable , ça marche ...heureusement que t'es là
euh , avec mon
j'ai essayé
comment faire pour ajouter un à ma variable???
euh , avec mon
sed -i -e '/\<hoplahop\>/a \\nint r'${i}'' mon_fichier, je veut le modifier pour qu'a la place de me declarer int r$i il me declare int r($i+1)
j'ai essayé
sed -i -e '/\<hoplahop\>/a \\nint r'${i+1}'' mon_fichier #marche pas sed -i -e '/\<hoplahop\>/a \\nint r'${i}+1'' mon_fichier #marche pas non plus
comment faire pour ajouter un à ma variable???
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
18 sept. 2007 à 13:47
18 sept. 2007 à 13:47
L'incrémenter avant :
((i++)) sed -i -e '/\<hoplahop\>/a \\nint r'${i}'' mon_fichier;-))
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
2
18 sept. 2007 à 14:28
18 sept. 2007 à 14:28
ben en faite , je doit garder i car je dois l'utiliser donc je peut pas l'incrementer avant, j'ai essayer de crée une variable j, mais j'arrive pas
il me donne 1++ a la place de 2
lorsque a la place je met j=((i++)) il me met une erreur : Syntax error: "(" unexpected (expecting "fi")
???
un autre petit souci : avec le code d'au dessus , outre le souci d'incrementation , lorsqu'il croise par exemple "c0.x" il ne me le comptabilise pas , il ne me compte que les "c0" san rien d'autre derriere (c0 par exemple peut etre c0.x, c0.y ou c0.z)
encore merci pour toute ton aide
if [ "$(sed '/^[ ]*#\|#\|^$\|^\n*$/d' $file | grep c${i} | wc -l)" -gt "0" ] then j="$i++" sed -i -e '/\<hoplahop\>/a \temp c'${i}' = variable['$j']' $file fi
il me donne 1++ a la place de 2
lorsque a la place je met j=((i++)) il me met une erreur : Syntax error: "(" unexpected (expecting "fi")
???
un autre petit souci : avec le code d'au dessus , outre le souci d'incrementation , lorsqu'il croise par exemple "c0.x" il ne me le comptabilise pas , il ne me compte que les "c0" san rien d'autre derriere (c0 par exemple peut etre c0.x, c0.y ou c0.z)
encore merci pour toute ton aide
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
18 sept. 2007 à 14:36
18 sept. 2007 à 14:36
j=$(($i+1))
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
2
18 sept. 2007 à 14:46
18 sept. 2007 à 14:46
cool , ça fonctionne
et pour un autre petit souci : avec le code d'au dessus , lorsqu'il croise par exemple "c0.x" il ne me le comptabilise pas , il ne me compte que les "c0" san rien d'autre derriere (c0 par exemple peut etre c0.x, c0.y, c0.z ou encore etre negatif comme par exemple -c0.x, -c1.z)
une idée?
et pour un autre petit souci : avec le code d'au dessus , lorsqu'il croise par exemple "c0.x" il ne me le comptabilise pas , il ne me compte que les "c0" san rien d'autre derriere (c0 par exemple peut etre c0.x, c0.y, c0.z ou encore etre negatif comme par exemple -c0.x, -c1.z)
une idée?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
18 sept. 2007 à 14:58
18 sept. 2007 à 14:58
Ben normalement il devrait les prendre en compte, sans tenir compte justement de ce qui se trouve après dans la mesure où ce n'est pas demandé implicitement dans la syntaxe de "grep" :-\
Désolé là je vois pas ;-(
Désolé là je vois pas ;-(
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
2
18 sept. 2007 à 15:03
18 sept. 2007 à 15:03
tu as donc une limite !!! lol
en tout cas je te remercie encore de toute cette aide
un tres tres grand MERCI
en tout cas je te remercie encore de toute cette aide
un tres tres grand MERCI
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
18 sept. 2007 à 15:08
18 sept. 2007 à 15:08
Ben de rien ;-))
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
2
18 sept. 2007 à 15:45
18 sept. 2007 à 15:45
ben c'est bon en fait , c'est moi qui bug
avec
je ne passais pas par les lignes contenant un # , j'ai rectifier et ça a l'air bon
donc en fait t'as pas de limite...
avec
if [ "$(sed '/^[ ]*#\|#\|^$\|^\n*$/d' $file | grep c${i} | wc -l)" -gt "0" ]
je ne passais pas par les lignes contenant un # , j'ai rectifier et ça a l'air bon
donc en fait t'as pas de limite...
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
2
18 sept. 2007 à 17:33
18 sept. 2007 à 17:33
rererere...
encore autre chose :
avec
je voudrait faire la meme chose mais sans que cela me compte les c qui sont commenté
c'est à dire que si j'ai
une idée???
encore autre chose :
avec
if [ "$(sed '/^[ ]*#\|^$\|^\n*$/d' $file | grep c${i} | wc -l)" -gt "0" ] then j=$(($i+1)) sed -i -e '/\<hoplahop\>/a \temp c'${i}' = variable['$j']' $file fi
je voudrait faire la meme chose mais sans que cela me compte les c qui sont commenté
c'est à dire que si j'ai
blablabla #blablabla c11 bla bla c1 #blablablail ne me trouve pas le c11, mais me trouve toujour le c1
une idée???
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
18 sept. 2007 à 18:16
18 sept. 2007 à 18:16
Essaye avec ça :
f [ "$(sed '/^[ ]*#\|^$\|^\n*$/d' $file | sed '/#[^\^#]/{s/#.*//}' | grep c${i} | wc -l)" -gt "0" ];-))
vieurou
Messages postés
73
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
19 décembre 2007
2
20 sept. 2007 à 09:51
20 sept. 2007 à 09:51
impeccable , merci encore
est ce que tu peut me décortiquer vite fait cette nouvelle commande s'il te plaît
est ce que tu peut me décortiquer vite fait cette nouvelle commande s'il te plaît
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
20 sept. 2007 à 10:08
20 sept. 2007 à 10:08
Salut,
en fait la commande sed te permet de jongler avec les expressions régulières (regex)
pour mieux comprendre je pense que tu dois les étudier un peu.
https://www.funix.org/fr/unix/expr-sed.htm
a savoir qu'il y a plusieurs utilitaires qui permettent d'exploiter les regex, personnellement je préfère Perl, qui offre une implementation très puissante des regex
en bref, chaque utilitaire a ses particularités en ce qui concerne le traitement des regex
en fait la commande sed te permet de jongler avec les expressions régulières (regex)
pour mieux comprendre je pense que tu dois les étudier un peu.
https://www.funix.org/fr/unix/expr-sed.htm
a savoir qu'il y a plusieurs utilitaires qui permettent d'exploiter les regex, personnellement je préfère Perl, qui offre une implementation très puissante des regex
en bref, chaque utilitaire a ses particularités en ce qui concerne le traitement des regex