Filtrer une variable
Résolu/Fermé
Mozer8888
Messages postés
76
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
13 octobre 2012
-
19 janv. 2012 à 15:55
Mozer8888 Messages postés 76 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 13 octobre 2012 - 20 janv. 2012 à 07:04
Mozer8888 Messages postés 76 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 13 octobre 2012 - 20 janv. 2012 à 07:04
A voir également:
- Filtrer une variable
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ✓ - Forum Python
- Comment filtrer sur excel - Guide
- Dans son restaurant, igor utilise une application pour gérer les réservations. dans le schéma (structure) de la base de données de l’application représenté ci-dessous : de quoi « telephone » est-il le nom ? de quoi « reservations » est-il le nom ? associez chaque terme avec un attribut, une donnée, un enregistrement, une table, une valeur ou une variable. - Forum Webmastering
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
5 réponses
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
19 janv. 2012 à 16:03
19 janv. 2012 à 16:03
echo $varx | grep "alcool"
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
19 janv. 2012 à 16:09
19 janv. 2012 à 16:09
Salut,
Ou aussi avec une redirection "<<<" :
;-))
Ou aussi avec une redirection "<<<" :
$ echo "${vary}" Boire bcp alcool nuit à la sante $ echo "${varx}" Boire bcp alcool nuit à la santé $ grep 'alcool' <<<"${vary}" Boire bcp alcool nuit à la sante $ grep 'alcool' <<<"${varx}" alcool $ sed 's/alcool/bière/' <<<"${vary}" Boire bcp bière nuit à la sante $ sed 's/alcool/bière/' <<<"${varx}" Boire bcp bière nuit à la santé $
;-))
Mozer8888
Messages postés
76
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
13 octobre 2012
1
19 janv. 2012 à 17:39
19 janv. 2012 à 17:39
je pas compris cette methode
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
19 janv. 2012 à 17:42
19 janv. 2012 à 17:42
Au lieu de faire :
On envoie directement la variable grâce à la redirection "<<<" sans passer par un "pipe" ( | ).
cat $variable | grep 'motif'
On envoie directement la variable grâce à la redirection "<<<" sans passer par un "pipe" ( | ).
grep 'motif' <<< $variable
Mozer8888
Messages postés
76
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
13 octobre 2012
1
19 janv. 2012 à 17:57
19 janv. 2012 à 17:57
Mais il faut deja donner à grep la chaine de caractère qu'il doit traiter.
J'ai par exemple:
maVar1="Boire bcp alcool nuit à la sante"
et je veux mettre dans maVar2, maVar1 mais sans le mot "alcool" : donc
maVar2="Boire bcp nuit à la sante"
coment faire??
2eme cas
si je veux juste savoir si j'ai "alcool" dans maVar1. comment faire?
J'ai par exemple:
maVar1="Boire bcp alcool nuit à la sante"
et je veux mettre dans maVar2, maVar1 mais sans le mot "alcool" : donc
maVar2="Boire bcp nuit à la sante"
coment faire??
2eme cas
si je veux juste savoir si j'ai "alcool" dans maVar1. comment faire?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
19 janv. 2012 à 18:04
19 janv. 2012 à 18:04
1er cas :
2ème cas : On teste le code retour ($?). Si égal à zéro (0) c'est bon, sinon si égal à un (1) c'est pas bon
$ maVar1="Boire bcp alcool nuit à la sante" $ maVar2=$(sed 's/alcool //' <<< $maVar1) $ echo $maVar2 Boire bcp nuit à la sante
2ème cas : On teste le code retour ($?). Si égal à zéro (0) c'est bon, sinon si égal à un (1) c'est pas bon
$ grep 'alcool' <<< $maVar1 Boire bcp alcool nuit à la sante $ echo $? 0 $ grep 'biere' <<< $maVar1 $ echo $? 1 $
Mozer8888
Messages postés
76
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
13 octobre 2012
1
19 janv. 2012 à 18:28
19 janv. 2012 à 18:28
Ok Man !! Merci!
C'est tres clair
Merci encore!
C'est tres clair
Merci encore!
Utilisateur anonyme
19 janv. 2012 à 17:05
19 janv. 2012 à 17:05
salur,
en bash aussi
en bash aussi
[[ $vary =~ (alcool) ]] && echo "${BASH_REMATCH[1]}"
Mozer8888
Messages postés
76
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
13 octobre 2012
1
19 janv. 2012 à 18:18
19 janv. 2012 à 18:18
[wilson@wilsonHP mybin]$ var1="boire bcp alcool nuit a la sante"
[wilson@wilsonHP mybin]$ echo $var1 | grep "alcool"
boire bcp alcool nuit a la sante
[wilson@wilsonHP mybin]$ grep 'alcool' <<< $var1
boire bcp alcool nuit a la sante
mais var1 ne change pas
voici avec sed je peux le changer
[wilson@wilsonHP mybin]$ echo $var1 | sed s/"alcool "//g
boire bcp nuit a la sante
Mais comment mettre ce nouveau résultat dans une autre variable, ou meme dans la meme variable en ecrasant son ancien contenu
Aussi si je veux juste savoir dans un script bash, si cette variable contien le mot 'alcool' ou pas, qui declenchera une autre commande.
genre :
if [ ! echo $var1 | sed s/"alcool "//g -eq $var1]; (je sais qu'ici c'est mal écrit)
then
....
[wilson@wilsonHP mybin]$ echo $var1 | grep "alcool"
boire bcp alcool nuit a la sante
[wilson@wilsonHP mybin]$ grep 'alcool' <<< $var1
boire bcp alcool nuit a la sante
mais var1 ne change pas
voici avec sed je peux le changer
[wilson@wilsonHP mybin]$ echo $var1 | sed s/"alcool "//g
boire bcp nuit a la sante
Mais comment mettre ce nouveau résultat dans une autre variable, ou meme dans la meme variable en ecrasant son ancien contenu
Aussi si je veux juste savoir dans un script bash, si cette variable contien le mot 'alcool' ou pas, qui declenchera une autre commande.
genre :
if [ ! echo $var1 | sed s/"alcool "//g -eq $var1]; (je sais qu'ici c'est mal écrit)
then
....
Mozer8888
Messages postés
76
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
13 octobre 2012
1
19 janv. 2012 à 18:34
19 janv. 2012 à 18:34
Je suis entrain d'ecrire un petit script tout bete
mais il bloque je crois au niveau de la partie en gras en disant:
zz.sh: ligne41: -120 : commande introuvable
sur gedit je ne peux pas trouver les lignes des messages d'erreur.
pouvez vous jetter un coup d'oeil svp.
#! /bin/sh
# nom du fichier => zz.sh
showrep=0
echo "Vous voullez savoir à quel jour de la semaine correspond une date?"
PS3="Entrez le numéro de votre date choisie -> "
select ladate in "aujourd'hui" "Une date quelquonque" "Votre date d'anniverssaire" "Sortir du programme";
do
if [ -z "$ladate" ];
then
echo "Erreur: entrez un numéro coorespondant aux dates proposées svp." 1>&2
elif [ "$REPLY" -eq 1 ];
then
Kel="la date d'aujourd'hui"
dateChoi=$(date +%s)
dc=$(date "+%D")
showRep=1
elif [ "$REPLY" -eq 4 ];:
then
echo "Bye!"
break
else
Kel="Une date quelquonque"
if [ "$REPLY" -eq 3 ];
then
Kel="Votre date d'anniverssaire"
da="d'anniverssaire"
fi
echo "Vous désirez savoir à quel jour de la semaine correspond "$Kel
echo "Veuillez saisir l'année $da: "; read annee
Actualyear=$(date "+%Y")
PlageYear=let $[ActualYear - 120]
while [ $annee -gt $Actualyear ]|| [$annee -lt $PlageYear];
do
echo "Année $da saisie incorrecte. Ressayez: "
read annee
done
echo "Veuillez saisir le mois: "
read mois
while [ $mois -gt 12 ] || [ $mois -lt 1 ];
do
echo "Mois $da saisi incorrect. Ressayez: "
read mois
done
echo "Veuillez saisir le jour: "
read jour
while [ $jour -gt 31 ] || [ $jour -lt 1 ] || [ $jour -gt 29 ] && [ $jour -eq 2 ] || [ $jour -eq 30 ] && [ !$mois -eq 2 ];
do
echo "Jour $da saisi incorrect pour le mois $mois. Ressayez: "
read mois
done
dateChoi=$(date -d "$annee-$mois-$jour 0:0:0" +%s)
dc="$jour/$mois/$annee"
showRep=1
fi
if [ $showRep -eq 1 ];
then
echo "Le jour de la semaine coorespondant à $dc est: " $(date -d @$dateChoi "+%A")
fi
echo
done
mais il bloque je crois au niveau de la partie en gras en disant:
zz.sh: ligne41: -120 : commande introuvable
sur gedit je ne peux pas trouver les lignes des messages d'erreur.
pouvez vous jetter un coup d'oeil svp.
#! /bin/sh
# nom du fichier => zz.sh
showrep=0
echo "Vous voullez savoir à quel jour de la semaine correspond une date?"
PS3="Entrez le numéro de votre date choisie -> "
select ladate in "aujourd'hui" "Une date quelquonque" "Votre date d'anniverssaire" "Sortir du programme";
do
if [ -z "$ladate" ];
then
echo "Erreur: entrez un numéro coorespondant aux dates proposées svp." 1>&2
elif [ "$REPLY" -eq 1 ];
then
Kel="la date d'aujourd'hui"
dateChoi=$(date +%s)
dc=$(date "+%D")
showRep=1
elif [ "$REPLY" -eq 4 ];:
then
echo "Bye!"
break
else
Kel="Une date quelquonque"
if [ "$REPLY" -eq 3 ];
then
Kel="Votre date d'anniverssaire"
da="d'anniverssaire"
fi
echo "Vous désirez savoir à quel jour de la semaine correspond "$Kel
echo "Veuillez saisir l'année $da: "; read annee
Actualyear=$(date "+%Y")
PlageYear=let $[ActualYear - 120]
while [ $annee -gt $Actualyear ]|| [$annee -lt $PlageYear];
do
echo "Année $da saisie incorrecte. Ressayez: "
read annee
done
echo "Veuillez saisir le mois: "
read mois
while [ $mois -gt 12 ] || [ $mois -lt 1 ];
do
echo "Mois $da saisi incorrect. Ressayez: "
read mois
done
echo "Veuillez saisir le jour: "
read jour
while [ $jour -gt 31 ] || [ $jour -lt 1 ] || [ $jour -gt 29 ] && [ $jour -eq 2 ] || [ $jour -eq 30 ] && [ !$mois -eq 2 ];
do
echo "Jour $da saisi incorrect pour le mois $mois. Ressayez: "
read mois
done
dateChoi=$(date -d "$annee-$mois-$jour 0:0:0" +%s)
dc="$jour/$mois/$annee"
showRep=1
fi
if [ $showRep -eq 1 ];
then
echo "Le jour de la semaine coorespondant à $dc est: " $(date -d @$dateChoi "+%A")
fi
echo
done
Mozer8888
Messages postés
76
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
13 octobre 2012
1
19 janv. 2012 à 19:38
19 janv. 2012 à 19:38
J'ai trouvé les erreurs
j'ai écris
PlageYear=let $[ActualYear - 120]
au lieu de
PlageYear=$[Actualyear - 120]
j'ai écris
PlageYear=let $[ActualYear - 120]
au lieu de
PlageYear=$[Actualyear - 120]
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
19 janv. 2012 à 19:43
19 janv. 2012 à 19:43
PlageYear=let $[ActualYear - 120]ça ce n'est pas correct.
PlageYear=$((ActualYear - 120))
et là
while [ $annee -gt $Actualyear ]|| [$annee -lt $PlageYear];il manque un espace à gauche du ou (||).
tu devrais privilégier l'usage de 'case', ce serait plus clair.
ps: puisque tu changes de sujet, ouvre un nouveau sujet !
Mozer8888
Messages postés
76
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
13 octobre 2012
1
20 janv. 2012 à 07:04
20 janv. 2012 à 07:04
merci
19 janv. 2012 à 17:39
19 janv. 2012 à 17:40
juste metttre dans une variable