[Script Shell] extraction de données

Ghis -  
 Ghis -
Bonsoir,
Voilà j'ai un gros souci avec l'extraction d'une URL à partir d'un fichier.Je m'explique, j'ai un script qui extrait plusieur lignes d'un fichier pour les stocker dans des variables.Le problème est qu'à la ligne 11 il y a une URL avec plein de caractère speciaux de type % ou ?...bref j'ai une erreur...voici le code

je veux par exemple juste afficher cette ligne, je fais :

echo `cat $fich | sed 11\!d ` et g une erreur je fais la meme commande avec des données sans car'actères speciaux c'est OK...

Pourquoi ça ??

Merci pour votre aide.

9 réponses

  1. crabs Messages postés 909 Statut Membre 507
     
    Salut,
    Essaies :
    echo `cat $fich | sed '11!d'` 

    le echo n'est pas obligatoire :
    cat $fich | sed '11!d'

    A+, crabs
    0
  2. Ghis
     
    Bonjour,
    La solution ne marche pas....si je met des %% il me dis fichier intruvable....c'est vraiment etrange...

    Merci
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Si je ne m'abuse ton shel c'est le "C-shell" (csh), non ?
    Essaie d'utiliser le drapeau "nonomatch" (man csh) :
    nonomatch
                   If set, a Filename substitution or Directory stack substitution
                   (q.v.)  which  does  not  match  any  existing  files  is  left
                   untouched  rather  than causing an error.  It is still an error
                   for the substitution to be  malformed,  e.g.,  `echo  ['  still
                   gives an error
    Utilisation :
    Définit cette variable en début de script par :
    set nonomatch
    Puis exécute le reste du script.
    0
  4. Ghis
     
    C'est parfait!!
    Donc que fais exactement cette commande set nonomatch??
    A quoi correspondent les erreurs MATCH??
    Merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Un exemple vaut mieux qu'un grand discours :
    [jp@Mandrake ~/tmpfs]$ echo zz*
    echo: No match.
    
    [jp@Mandrake ~/tmpfs]$ set nonomatch
    
    [jp@Mandrake ~/tmpfs]$ echo zz*
    zz*
    
    [jp@Mandrake ~/tmpfs]$
    A quoi correspondent les erreurs MATCH??
    En gros "no match" = "pas de correspondance"
    0
  7. Ghis
     
    Encore des soucis...
    Quelqu'un connais t'il le but de la commande
    sed -f fichier1 fichier2 >fichier3
    car j'ai ce type de commande qui me pose probleme...j'obtiens un sed command garbled....
    a priori c'est toujours un probleme avec ma fameuse url et ces caractères spéciaux...car dans le fichier1 il y a cette URL.
    Merci
    0
  8. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    man sed
    -f script-file, --file=script-file
    
                  add the contents of script-file to the commands to be executed
    En deux mots : l'option "-f" fournit un fichier à "sed" contenant les commandes à exécuter.
    0
  9. Ghis
     
    Merci pour l'explication
    mais cette commande rejette encore mon URL.
    Je vois pas pourquoi...
    comment contourner ce problème?
    Merci pour votre aide.
    0
  10. Ghis
     
    En fait c'est les " / " qu'il n'aime pas...
    0