Pb de script shell

Fermé
ZuG' - 11 avril 2007 à 10:53
 ZuG' - 11 avril 2007 à 11:53
Bonjour,

J'ais un soucis sur un script shell que j'essaye de faire depuis quelques heures maintenant...
C'est pourtant pas compliqué mais je commence a m'arracher les cheveux

Voila donc je m'explique:

J'ai un fichier composé de plusieurs ligne du genre:

ligne1
ligne2
ligne3
...


et je souhaite crée un second fichier sous cette forme:

ligne1,ligne2,ligne3,...

Pour le moment je ne fais pas la création du second fichier, je me contente juste de faire une concatenation avec une variable mais cela ne fonctionne pas... voici mon script:

#!/bin/bash

test=""

while read line
do
test=$test$line
done < test.txt

echo $test

la variable $test me retourne la dernière ligne de mon fichier test.txt

Hors, quand je fais une concatenation du meme type sans passer par un fichier sa fonctionne trés bien exemple:

var1="toto"
var2="titi"
var3=$var1$var2

echo $var3

La variable $var3 me retourne bien tototiti

Please HELP !!!!

Merci par avance...

ZuG'
A voir également:

4 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
11 avril 2007 à 11:10
Salut,
while read line; do echo -e "$line,\c"; done< ton_fichier > fichier_de_sortie
;-))
0
Salut,

Tout d'abord, merci d'avoir repondu aussi vite :)
Ensuite je viens de tester ton script, il marche sauf que quand je fais un vi du fichier de destination, j'y trouve bien tout sur une seule ligne mais avec des ^M entre chaque morceau exemple:

ligne1^M,ligne2^M,ligne3^M,...

A quoi correspond ce ^M ???
A t-il une incidence sur le contenu du fichier ???

Merci

ZuG'
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
11 avril 2007 à 11:29
Re-

C'est la marque des retours chariots sous DOS.
Voir à ce sujet : sed conversion retours chariots dos crlf unix lf

;-)
0
Oki merci beaucoup !!!
0