Bonjour a tous,
Je suis entrain de faire un script shell, je debute et j'aimerais faire quelque chose si quelqu'un pouvait m'aider ;)
PROBLEME 1) Je voudrais vérifier la non présence d'un mot ou d'une ligne dans un fichier et si ce test est ok alors je continue mon traitement
PROBLEME 2) faire un traitement sur une chaine de caractere par exemple une chaine:
nom("linux")
un echo $var m'afficherai linux a l'écran
ca a l'air tout bete mais je galere depuis un bout de temps sur ces petits problemes ...
merci de votre aide
# ca commence
Posté par pierre_jean . Évalué à 1.
pour mon probleme 1 j'ai trouvé :
grep -i "linux" fichier
if [ "$?" = "0" ]
then
echo "trouve"
else
echo "pas trouve"
fi
# sultion probleme2
Posté par pierre_jean . Évalué à 1.
chaine="nom(\"linux\")"
echo $chaine > fic1
chaine2=`cut -c6-10 fic1`
echo "chaine2 : " $chaine2
PS : si des choses vous paraissent trop mauvaises merci de me l'indiquer
[^] # Quelques liens
Posté par liberforce (site web personnel) . Évalué à 3.
http://www.tldp.org/LDP/abs/html/index.html(...)
Le même en français mais un peu moins à jour:
http://www.bsdbooks.net/shells/scripting/fr/(...)
Utilisation de sed avec une petite expression régulière pour ne prendre que le texte entre parenthèses.
echo "nom(linux)" | sed -e "s/.*(\(.*\)).*/\\1/"
http://fr.wikipedia.org/wiki/Expressions_r%C3%A9guli%C3%A8res(...)
[^] # Re: Quelques liens
Posté par liberforce (site web personnel) . Évalué à 2.
# réponse au deux questions
Posté par netsurfeur . Évalué à 2.
if grep -q linux fichier
then echo trouvé
else echo pas trouvé
fi
"man grep" pour les options
question 2:
var1='nom("linux")'
var2=`echo $var1 | cut -c6-10`
echo $var2
pas besoin de fichier intermédiaire
(Attention, ce sont des quotes inversées dans la 2ème ligne)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.