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

  FORUM HardWare.fr
  Programmation

  [SCRIPT UNIX] comment faire un substring?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SCRIPT UNIX] comment faire un substring?

n°100092
fdl
Posté le 13-02-2002 à 20:32:58  profilanswer
 

voila, je voudrais recuperer un champ de caractere dans une variable en script shell.
Par exemple: recuperer le chiffre dans "A002B"
 
Merci d'avance

mood
Publicité
Posté le 13-02-2002 à 20:32:58  profilanswer
 

n°100159
fdl
Posté le 14-02-2002 à 09:58:33  profilanswer
 

UP!
 
svp, par exemple, A102B -> 102 (entre lé 2ème et 4ème caractère)
 
En gros, faire comme un substring en Java

n°100196
jupiler
Un cousin...
Posté le 14-02-2002 à 10:53:12  profilanswer
 

"man cut"


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°100245
Rawhead re​x
Argghhhhh
Posté le 14-02-2002 à 11:52:36  profilanswer
 

Le mieux c'est d'utiliser un petit utilitaire, ca simplifie la vie.
Pour ma part je prefere awk, donc la commande suivante devrait te satisfaire :
 
echo $"nom_variable" | awk -F[a-x] '{print $2}'
 
Tu pourrais faire un "cut -d ... -f ..." mais seulement si ta chaine de caractere commence toujours par un 'A' et finie par un 'B' sinon ca devient aussi simplie d'utiliser awk.

n°100325
jupiler
Un cousin...
Posté le 14-02-2002 à 14:19:46  profilanswer
 

pour faire un découpage entre 2 positions, je ne vois pas ce qu'il peut y avoir de meilleur que le cut:
 
cut -c2-6 "abcdefghij" donne bcdef
 
ya pas plus simple


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°100332
Rawhead re​x
Argghhhhh
Posté le 14-02-2002 à 14:28:20  profilanswer
 

Ouais mais seulement si les positions des colonnes sont toujours les memes!
Si les longueurs de champs sont variables tu peut plus, a moins d'utiliser un separateur, mais pour cela il faut que ce soit toujours le meme(par exemple le caractere 'A';).
Bref dans tous les cas il faut un invariant pour 'cut'.
 
Sinon tu cree un shell script complique avec des boucles 'cut', du coup autant utiliser des utilitaires deja fourni du genre 'awk'

n°100352
jupiler
Un cousin...
Posté le 14-02-2002 à 14:46:18  profilanswer
 

je vois pas le pb.
 
Il cherche à récupérer une sous-chaine entre 2 positions.
 
C'est exactement ce que fait la commande que j'ai écrite, quelque soit la chaine


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°100358
Rawhead re​x
Argghhhhh
Posté le 14-02-2002 à 14:52:02  profilanswer
 

Non c'est pas exactement ce qu'il a decrit, il a dit qu'il voulait recuperer un champ de caractere(ici des chiffres) dans une chaine generale.
Pour reprendre l'exemple "A002B" et pour clarifier : il n'a pas preciser que les chaines commencent toutes par 'A' et finissent par 'B', ni meme qu'elles commencent par un seul caractere et finissent par un seul caractere.
 
Donc tu n'as pas d'invariant significatif a passer au 'cut'.
tu dois donc te contenter de recuperer des sous-chaines de chiffres situees entre 2 chaines de caracteres quelconques de longueur variables, d'ou l'utilisation de 'awk'

n°100383
jupiler
Un cousin...
Posté le 14-02-2002 à 15:27:11  profilanswer
 

je ne comprends pas du tout ce que tu veux dire.
 
Mais ce qu'il dit lui est clair:
 
 

Citation :


UP!
 
svp, par exemple, A102B -> 102 (entre lé 2ème et 4ème caractère)
 
En gros, faire comme un substring en Java  


 
le substring java, c'est entre position de départ et position d'arrivée. le "cut -c2-4" prend bien entre le 2ème et le 4ème caractère, c'est exactement ce qu'il veut non ?


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°100390
Rawhead re​x
Argghhhhh
Posté le 14-02-2002 à 15:41:50  profilanswer
 

Bon effectivement je me souviennait plus exactement ce que fait un sub-string en Java(plus touchait depuis un bout de temps).
Mais il n'empeche qu'il n'a pas demande comment refaire exactement un sub-string mais il l'a pris comme exemple !
'En gros, faire comme un substring en Java'
 
Donc ca ne remet pas en cause mon explication, en plus je ne suis pas contre ton 'cut' je dis juste que son domaine d'application est limite(comme tout bon cut qui se respecte d'ailleurs :)).
 
Sinon le mieux ca serait que fdl nous reponde plutot qu'on continue cette bataille dialectique :)

mood
Publicité
Posté le 14-02-2002 à 15:41:50  profilanswer
 

n°100393
Rawhead re​x
Argghhhhh
Posté le 14-02-2002 à 15:44:09  profilanswer
 

Tiens je viens de penser a un truc si tu ne comprends pas ce que je voulais dire : essaye d'appliquer ton 'cut' a :
 
ADSA001DAS
AWE002ERTY
 
Ben pb !

n°100412
jupiler
Un cousin...
Posté le 14-02-2002 à 16:11:28  profilanswer
 

d'accord, mais ce n'est pas ce qu'il recherche à mon avis
 
Quand il a dit "Rechercher le chiffre", c'est que probablement il a des champs formatés de la sorte et il veut lire les caractères du milieu
 
 
Enfin, je me comprends :p


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°100413
Rawhead re​x
Argghhhhh
Posté le 14-02-2002 à 16:14:06  profilanswer
 

D'un autre cote ca serait sympa que fdl nous dise ce qu'il en est.
Parceque la, on s'est serieusement demenes dans la discussion avec argument a l'appui...
En tout cas il devrait y trouver son compte :)

n°100414
jupiler
Un cousin...
Posté le 14-02-2002 à 16:16:05  profilanswer
 

toutafait


---------------
Je ne suis ni pour, ni contre, bien au contraire  

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

  [SCRIPT UNIX] comment faire un substring?

 

Sujets relatifs
[PHP] Comment on fait pour convertir une date en jours ou s. Unix[PHP] Upload de fichiers (script inside)
UNIX comment récupérer le pid depuis un shellErreur sql d'un script venant de phpdebutant
script file d'attente sur un lien vers un ftp[BASH] Help! Besoin d'aide pour l'écriture d'un script ...
comment crée un script permettant[C/C++/UNIX] Comment détecter qu'une instance d'un pgm est déjà lancé
[C/UNIX] lire un stream ouvert a partir d'un file descriptor de socket[PROG] Où trouver un script...
Plus de sujets relatifs à : [SCRIPT UNIX] comment faire un substring?


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