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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Concaténation foireuse de 2 variables sous bash

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Concaténation foireuse de 2 variables sous bash

n°2207070
hegoalde
Cheers mother rockers !!
Posté le 17-10-2013 à 18:12:30  profilanswer
 

Bonjour,
 
En cours d'écriture d'un script en bash (dans lequel je compte faire intervenir du gawk, mais ça sera une autre histoire), je cherche bêtement à concaténer 2 variables :
$entete dont le contenu est "1309142;7510;1310103052;201310101535"
et
$entete2 dont le contenu est "201310101626;20131016230623"
 
J'ai donc songé à faire ceci :
variable_cible=$entete";"$entete2
Afin d'obtenir "1309142;7510;1310103052;201310101535;201310101626;20131016230623"
 
Cela ne fonctionne pas puisque j'obtiens curieusement la chaîne suivante : ";201310101626;2013101623062310101535"
Un peu comme si les caractères constitués par le ";" suivi du contenu de la variable $entete2 se substituait au début du contenu de la variable $entete1 !
 
Auriez-vous une idée, une piste sur la raison de ce binzz (oui je suis de la vieille génération qui a vu Les Visiteurs au cinéma...) ?
 
Je vous en remercie par avance.


---------------
Not just a man...
mood
Publicité
Posté le 17-10-2013 à 18:12:30  profilanswer
 

n°2207089
olivthill
Posté le 17-10-2013 à 20:35:30  profilanswer
 

Le point virgule représente une fin de commande. Là, il est entre guillemets, alors il aurait dû être accepté, mais c'est peut-être un défaut de l'interpréteur de commande, ou un cas particulier.
 
Pour résoudre le problème, essayer :

variable_cible="${entete};${entete2}"

ou

variable_cible=`echo "${entete} ${entete2}" | awk '{printf("%s;%s", $1, $2)}'`

[:angellus2:3]

Message cité 1 fois
Message édité par olivthill le 17-10-2013 à 20:43:09
n°2207126
hegoalde
Cheers mother rockers !!
Posté le 18-10-2013 à 08:29:07  profilanswer
 

olivthill a écrit :

Le point virgule représente une fin de commande. Là, il est entre guillemets, alors il aurait dû être accepté, mais c'est peut-être un défaut de l'interpréteur de commande, ou un cas particulier.
 
Pour résoudre le problème, essayer :

variable_cible="${entete};${entete2}"

ou

variable_cible=`echo "${entete} ${entete2}" | awk '{printf("%s;%s", $1, $2)}'`

[:angellus2:3]


 
Bonjour et merci pour votre retour mais... j'obtiens toujours cette satanée chaîne : ";201310101626;2013101623062310101535" en retour.
Screugneugneu !!
 
[EDIT]
 
Bon, j'ai fait le test en substituant les ";" par des "X" ... même résultat.
 
J'ai donc simplifié au maximum le test de cette manière (les variables correspondant à une date de type AAAAMMJJHHMM)
var1=201310101535
var2=201310101626
La commande :
echo $var1 $var2
donne curieusement le résultat suivant : " 201310101626"     (sans les guillemets évidemment)
 
Par contre si je rentre des valeurs quelconques dans var1 et var2 :
var1=123456789012
var2=198765432109
echo $var1 $var2 --> "123456789012 198765432109"
 
Mon bash interpréterait-il les dates, est-ce que cela mettrait le bazard ?  


Message édité par hegoalde le 18-10-2013 à 08:48:57

---------------
Not just a man...
n°2211654
iguanic
Posté le 26-11-2013 à 09:20:05  profilanswer
 

il y a la commande paste
 

Code :
  1. paste  -d ' ' fichier1 fichier2 > fichier_final


 
si tu souhaites mettre un point virgule entre les 2 fichier à ce moment tu mets -d ';'  
et normalementsi tu as le même nombre de ligne dans tes 2 fichiers ça colle


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

  Concaténation foireuse de 2 variables sous bash

 

Sujets relatifs
[PHP] Upload multiples : variables ne passent pas si trop de volumeFiltre avec contient des variables
[BASH] couper un fichier à une ligne préciseretourner 2 types de variables
[bash] reprendre la main après une redirection de l'entrée standardconcaténation d'un entier à un string
shell bash edition de fichier besoin d'aideSoucis concaténation
remplir un tableau HTML avec des variables JSproblème de variables VBA
Plus de sujets relatifs à : Concaténation foireuse de 2 variables sous bash


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