Concaténation foireuse de 2 variables sous bash - Shell/Batch - Programmation
Marsh Posté le 17-10-2013 à 20:35:30
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)}'` |
Marsh Posté le 18-10-2013 à 08:29:07
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.
ou
|
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 ?
Marsh Posté le 26-11-2013 à 09:20:05
il y a la commande paste
Code :
|
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
Marsh Posté le 17-10-2013 à 18:12:30
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...