[Shell] Script
Résolu/Fermé
davidubois
Messages postés
7
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
18 juin 2007
-
22 mars 2007 à 15:36
davidubois Messages postés 7 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 18 juin 2007 - 23 mars 2007 à 15:24
davidubois Messages postés 7 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 18 juin 2007 - 23 mars 2007 à 15:24
A voir également:
- [Shell] Script
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Ghost script - Télécharger - Polices de caractères
- Script bat - Guide
- Microsoft activation script - Accueil - Windows
4 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
22 mars 2007 à 15:48
22 mars 2007 à 15:48
Salut,
affiche une ligne de ton fichier .dat
affiche une ligne de ton fichier .dat
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
22 mars 2007 à 15:54
22 mars 2007 à 15:54
Salut,
On pourrait avoir un aperçu d'un des fichiers "*.dat" ainsi qu'un aperçu du fichier "input" et si c'est pas trop demandé, un aperçu de ce que donne la commande :
;-))
On pourrait avoir un aperçu d'un des fichiers "*.dat" ainsi qu'un aperçu du fichier "input" et si c'est pas trop demandé, un aperçu de ce que donne la commande :
grep $nd /data/hvme/infiles/dracco/archive/*.dat | cut -c69-70 | grep "00"en masquant ou changeant les noms, numéros de tél ou références génantes. Merci.
;-))
davidubois
Messages postés
7
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
18 juin 2007
1
22 mars 2007 à 16:43
22 mars 2007 à 16:43
un grep 206765197 ... fonctionne normalement.
...comme demandé...
input :
fichier.dat
Merci de votre intérêt ;)
...comme demandé...
input :
206765197 100029270 110175947 110723370 110894481 110910729 111024562
fichier.dat
1A;31D0;0206765197;O;20010101;000000;00;Demande traitee correctement;20010101;15G714 1A;31D2;0110723370;O;20010101;000000;00;Demande traitee correctement;20010101;15D716voili voilou
Merci de votre intérêt ;)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
22 mars 2007 à 17:22
22 mars 2007 à 17:22
un grep 206765197 ... fonctionne normalement.
Oui ça je me doute, mais est-ce que le reste de la commande, à savoir "| cut -c71-72 | grep "00"" donne le résultat escompté ?
Et quel est-il d'ailleurs ce résultat escompté ?
Parce que chez moi avec ton fichier ".dat" ça donne rien, vu que les caractères "69-70" sont ";2" et ne correspondent en rien à "00" !!!
Alors qu'en remplaçant "69-70" par "71-72" ça marche ;-))
Oui ça je me doute, mais est-ce que le reste de la commande, à savoir "| cut -c71-72 | grep "00"" donne le résultat escompté ?
Et quel est-il d'ailleurs ce résultat escompté ?
Parce que chez moi avec ton fichier ".dat" ça donne rien, vu que les caractères "69-70" sont ";2" et ne correspondent en rien à "00" !!!
Alors qu'en remplaçant "69-70" par "71-72" ça marche ;-))
davidubois
Messages postés
7
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
18 juin 2007
1
23 mars 2007 à 13:59
23 mars 2007 à 13:59
ok d'ac ...
Mais j'ai une question sur le script suivant et son résultat :
Est-ce que la variable $nd contient un caractère de "retour à la ligne" ?
A+DDD
Mais j'ai une question sur le script suivant et son résultat :
cat input | while read nd do echo "Input:${nd}." donedonne
.nput:206765197 .nput:100029270Pourquoi le point terminal passe en début de ligne ?
Est-ce que la variable $nd contient un caractère de "retour à la ligne" ?
A+DDD
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 mars 2007 à 14:25
23 mars 2007 à 14:25
Re-
Pourquoi le point terminal passe en premier caractère ?
Tu dois avoir un problème avec ton shell, parce que déjà en plus du point, ton "I" de "Input" est sucré au passage !!
Par contre chez moi le script fonctionne bien.
Est-ce que la variable $nd contient un caractère de "retour à la ligne" ?
Non, le retour à la ligne résulte du parsage du fichier dans la boucle "while" qui traite une ligne à la fois.
Si tu tiens vraiment à éliminer ce retour à la ligne utilises plutôt la commande externe "echo" et son paramètre "-e" :
:-)
Pourquoi le point terminal passe en premier caractère ?
Tu dois avoir un problème avec ton shell, parce que déjà en plus du point, ton "I" de "Input" est sucré au passage !!
Par contre chez moi le script fonctionne bien.
Est-ce que la variable $nd contient un caractère de "retour à la ligne" ?
Non, le retour à la ligne résulte du parsage du fichier dans la boucle "while" qui traite une ligne à la fois.
Si tu tiens vraiment à éliminer ce retour à la ligne utilises plutôt la commande externe "echo" et son paramètre "-e" :
echo -e "Input:${nd} \c"Tu peux aussi écrire ton script de cette façon :
#!/bin/bash while read nd do echo -e "Input:${nd} \c" done < inputAu fait quand est-il de ton script précédent, il marche ou pas ? As-tu fais des modifications par rapport aux réponses reçues ?
:-)
davidubois
Messages postés
7
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
18 juin 2007
1
23 mars 2007 à 14:50
23 mars 2007 à 14:50
Merci pour l'explication.
Le script précedent ne fonctionne toujours pas : je dois avoir un pb avec mon shell et je n'en suis pas l'administrateur :-S
le script
Le script précedent ne fonctionne toujours pas : je dois avoir un pb avec mon shell et je n'en suis pas l'administrateur :-S
le script
cat input | while read nd do grep $nd *.dat donene sort rien !
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 mars 2007 à 15:14
23 mars 2007 à 15:14
Chez moi ça marche, bizarre ;-\
Essaie avec ça :
Essaie avec ça :
#!/bin/bash while read nd do # echo -e "Input:${nd} \c" grep "$nd" *.dat done < inputet lance ton script avec les options de débogages, à savoir "-xv" :
sh -xv ton_script;-))
davidubois
Messages postés
7
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
18 juin 2007
1
23 mars 2007 à 15:24
23 mars 2007 à 15:24
Yop,
J'ai pas trop le temps de chercher donc nous avons choisi de modifier le fichier input en incluant un caractère blanc après chaque numéro de téléphone. Apparemment, j'ai un carriage return en fin de chaine qui gène son utilisation !
J'ai également adapté mon script car les enreg des fichiers dat (csv) ne sont pas de longueur fixe donc un cut -d";" -f7 me ramève le septième champs des lignes des fichiers csv ramenées par le grep.
En conclusion, j'ai repris un script foireux et comme d'hab j'ai fait confiance à son auteur : grave erreur... Moralité ( éternelle et répétitive ) , j'efface tout et je recommence !
Merci de votre patience !!!!!!
J'ai pas trop le temps de chercher donc nous avons choisi de modifier le fichier input en incluant un caractère blanc après chaque numéro de téléphone. Apparemment, j'ai un carriage return en fin de chaine qui gène son utilisation !
J'ai également adapté mon script car les enreg des fichiers dat (csv) ne sont pas de longueur fixe donc un cut -d";" -f7 me ramève le septième champs des lignes des fichiers csv ramenées par le grep.
En conclusion, j'ai repris un script foireux et comme d'hab j'ai fait confiance à son auteur : grave erreur... Moralité ( éternelle et répétitive ) , j'efface tout et je recommence !
Merci de votre patience !!!!!!