Rechercher : dans
Par :

[Script Shell] extraction de données

Dernière réponse le 3 fév 2006 à 14:36:57 Ghis, le 2 fév 2006 à 20:43:20 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « [Script Shell] extraction de données » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha-Bang Premièrement,...

1

crabs, le 2 fév 2006 à 23:02:39

Salut,
Essaies :

echo `cat $fich | sed '11!d'` 

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

A+, crabs ..., I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding - founder and maintainer of Slackware

Répondre à crabs

2

Ghis, le 3 fév 2006 à 09:25:14

Bonjour,
La solution ne marche pas....si je met des %% il me dis fichier intruvable....c'est vraiment etrange...

Merci

Répondre à Ghis

3

jipicy, le 3 fév 2006 à 09:54:55

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.
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

Répondre à jipicy

4

Ghis, le 3 fév 2006 à 12:07:47

C'est parfait!!
Donc que fais exactement cette commande set nonomatch??
A quoi correspondent les erreurs MATCH??
Merci

Répondre à Ghis

5

jipicy, le 3 fév 2006 à 12:15:44

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" Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

Répondre à jipicy

6

Ghis, le 3 fév 2006 à 14:10:26

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

Répondre à Ghis

7

jipicy, le 3 fév 2006 à 14:19:57

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. Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

Répondre à jipicy

8

Ghis, le 3 fév 2006 à 14:29:36

Merci pour l'explication
mais cette commande rejette encore mon URL.
Je vois pas pourquoi...
comment contourner ce problème?
Merci pour votre aide.

Répondre à Ghis

9

 Ghis, le 3 fév 2006 à 14:36:57

En fait c'est les " / " qu'il n'aime pas...

Répondre à Ghis