Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3029 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [SHELL]Utilisation du resultat de ma commande GREP pour un nul [CLOS]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SHELL]Utilisation du resultat de ma commande GREP pour un nul [CLOS]

n°1675695
lolo71
Posté le 23-01-2008 à 15:17:01  profilanswer
 

Bonjour,
 
Je ne suis pas un expérimenté, c'est le moins que l'on puisse dire dans le SHELL
J'ai besoin d'un coup de main
 
L'idée je fais un grep d'un fichier texte pour en extraire une valeur comme ceci et je l'associe à un nom de paramètre:
PARAMETRE=$(grep 0 /applis/bla/bla/bla/blabla.txt)
 
Je fais un echo $PARAMETRE il me donne bien le résultat de ce que je lui ai mdemandé :
ECHO $PARAMETRE
 
Mon paramètre correspond à un nom de repertoire alors je fais un  
cd ../../../$PARAMETRE
et là c'est le drame, je n'y arrive pas, ce n'est pas une erreur de chemain car si je remplace à la main la valeur en dure de $PARAMETRE ça marche.
Vous aurriez une idée pour me venir en aide
 
#! /bin/sh
PARAMETRE=$(grep 0 /applis/bla/bla/bla/blabla.txt)
echo $PARAMETRE
cd ../../../$PARAMETRE
ls
#! /bin/sh


Message édité par lolo71 le 28-01-2008 à 10:45:40
mood
Publicité
Posté le 23-01-2008 à 15:17:01  profilanswer
 

n°1675713
Elmoricq
Modérateur
Posté le 23-01-2008 à 15:39:28  profilanswer
 

Fais un pwd avant ton cd pour vérifier que tu es bien dans le bon répertoire.
De toute manière, non seulement c'est mieux de travailler avec des chemins absolus plutôt que relatifs, mais en plus se balader dans les répertoires c'est souvent casse-gueule, mieux vaut travailler à partir de là où on est, et récupérer les fichiers/faire les appels en précisant les différents chemins voulus.
Ex. : cp <chemin absolu>/$PARAMETRE/fichier <chemin destinataire>
 
Et ton second shebang est inutile.

n°1675730
lolo71
Posté le 23-01-2008 à 15:56:41  profilanswer
 

J'ai modifier mon script comme ça mais c'est pareil, si je mets en dure le résultat de ma commande GREP, j'accède bien à mon repertoire puis je fais un LS, je suis sur de mon chemin, ma commande "cd  $REPDML/$PARAMETRE" ,c'est comme si la valeur de $PARAMETRE était vide.
#! /bin/sh
REP_APPLIS=/applis/bla/
echo $REPDML
PARAMETRE=$(grep 0 /applis/bla/bla/bla/blabla.txt)
echo $PARAMETRE
cd $REP_APPLIS/$PARAMETRE
ls


Message édité par lolo71 le 23-01-2008 à 15:57:16
n°1676084
matafan
Posté le 24-01-2008 à 11:14:01  profilanswer
 

Qu'est ce qui te fais dire que le cd ne marche pas ? Tu as un message d'erreur sur le cd ? Ou alors c'est le ls qui suit qui ne donne pas ce que tu attends ?

 

Edit : remplace ton "echo $PARAMETRE" par un "echo $PARAMETRE | sed l" pour voir ce qu'il y a réellement dans $PARAMETRE


Message édité par matafan le 24-01-2008 à 11:16:10
n°1676138
lolo71
Posté le 24-01-2008 à 12:18:03  profilanswer
 

c'est le résultat de ma commande CD qui ne marche pas
Je n'arrive pas à me rendre dans le repertoire $PARAMETRE alors que le echo $PARAMETRE m'affiche bien le nom du repertoire qui m'interresse.
 
 
Voici le résultat  de echo $PARAMETRE| sed l      
0999\r$
0999
 
 
La valeur 0999 est bonne, mon repertoire s'appel bien 0999

n°1676671
matafan
Posté le 25-01-2008 à 11:31:14  profilanswer
 

Donc ça doit être parce que le fichier sur lequel tu fais le grep est au format dos et pas unix (retour à la ligne CRLF au lieu de LF).

n°1676799
lolo71
Posté le 25-01-2008 à 14:46:37  profilanswer
 

Je viens de faire un unix2dos de mon fichier texte, c'est pas ça, quand je fais un echo, je n'ai pas de saut de ligne.
Je vois pas où est la boulette

n°1676819
Elmoricq
Modérateur
Posté le 25-01-2008 à 15:19:17  profilanswer
 

Une chose est sure : l'erreur ne vient pas de la commande cd en elle-même.
Soit le chemin spécifié est faux, soit le contenu de $PARAMETRE est erroné.

n°1676980
matafan
Posté le 25-01-2008 à 21:43:43  profilanswer
 

C'est pas unix2dos qu'il faut faire, c'est dos2unix. Sur le echo c'est normal que ça s'affiche correctement. D'après ce que tu dis je suis sûr à 90% que c'est une problème de \r.

n°1677741
lolo71
Posté le 28-01-2008 à 10:44:19  profilanswer
 

Merci oh grand matafan tu avais raison j'ai fais un dos2unix et ça marche.
 
Je resterai éternellement newbee en shell
 
Encore Merci ....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [SHELL]Utilisation du resultat de ma commande GREP pour un nul [CLOS]

 

Sujets relatifs
Problème d'utilisation des objets définis par l'utilisateurcommande pour ramener le folder le plus ancien
[libCURL] récupérer le retour d'une commande FTPrécuperer variable dans script shell avec formulaire PHP
Savoir si un résultat de requête est vide[DOS] : commande tabulation ou une astuce
[Resolu] [Bash] Ecrire le résultat d'une commande dans un fichier HTMLFenetre, comparaison, resultat... besoin d'aide (bis)
[SHELL] SSH et login dans un repertoire specifique 
Plus de sujets relatifs à : [SHELL]Utilisation du resultat de ma commande GREP pour un nul [CLOS]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR