Bash:sed réagit différemment dans un scripte
Résolu/Fermé
IvyAlice
Messages postés
379
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
14 septembre 2013
-
19 août 2011 à 09:00
IvyAlice Messages postés 379 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 14 septembre 2013 - 19 août 2011 à 09:46
IvyAlice Messages postés 379 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 14 septembre 2013 - 19 août 2011 à 09:46
A voir également:
- Bash:sed réagit différemment dans un scripte
- Bingo bash free - Télécharger - Divers Jeux
- Minimal bash-like line editing is supported ✓ - Forum Linux / Unix
- Bash addition ✓ - Forum Shell
- Bash pause ✓ - Forum Shell
- Bash-3.2 - Forum MacOS
3 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
19 août 2011 à 09:03
19 août 2011 à 09:03
Salut,
Affiche ton script, sans quoi difficile de voir d'où vient l'erreur ;-(
Quel système ?
Quelle distrib?
Quelle version de sed, bash ?
Affiche ton script, sans quoi difficile de voir d'où vient l'erreur ;-(
Quel système ?
Quelle distrib?
Quelle version de sed, bash ?
IvyAlice
Messages postés
379
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
14 septembre 2013
32
19 août 2011 à 09:09
19 août 2011 à 09:09
Hello zipe31,
Merci pour ta réponse rapide, voici les informations qu'il te manque.
debian lenny(2.6.26-2)
bash 3.2.39
sed 4.1.5
et pour ce qui est du scripte :
j'ai pas encore mis le mv vu que j'obtenais pas ce qui était attendu déjà à ce stade.
Merci pour ta réponse rapide, voici les informations qu'il te manque.
debian lenny(2.6.26-2)
bash 3.2.39
sed 4.1.5
et pour ce qui est du scripte :
dest="fich1.txt" desttmp="fich2.txt" echo "Entrez le nom de l'utilisateur a supprimer (format ThreepwoodG): " read nom if [ ! $nom ]; then echo "la variable est vide" exit fi echo "sed -n -e '/$nom/!p' $dest | tee -a > $desttmp" sed -n -e '/$nom/!p' $dest | tee -a > $desttmp
j'ai pas encore mis le mv vu que j'obtenais pas ce qui était attendu déjà à ce stade.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
19 août 2011 à 09:15
19 août 2011 à 09:15
Les variables ne sont pas interprétées entre des quotes simples, il faut donc sortir de la commande de "sed" pour que ta variable soit interprétée :
On aurait pu mettre des quotes doubles directement autour de la commande, mais dans la mesure où tu utilises la négation (!) dans ta commande, on aurait eut une interaction avec le shell bash et un joli message d'erreur ;-(
Voir dans la FAQ : SED - Le remplacement de variables
sed -n -e '/'"$nom"'/!p' $dest | tee -a > $desttmp
On aurait pu mettre des quotes doubles directement autour de la commande, mais dans la mesure où tu utilises la négation (!) dans ta commande, on aurait eut une interaction avec le shell bash et un joli message d'erreur ;-(
Voir dans la FAQ : SED - Le remplacement de variables
IvyAlice
Messages postés
379
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
14 septembre 2013
32
19 août 2011 à 09:46
19 août 2011 à 09:46
ah oui là ça fonctionne
Merci,
la prochaine fois je tâcherai de commencer par la faq ;-)
Ivy
Merci,
la prochaine fois je tâcherai de commencer par la faq ;-)
Ivy