localiser un séparateur de champ dans un fichier

localiser un séparateur de champ dans un fichier - Shell/Batch - Programmation

Marsh Posté le 12-07-2005 à 21:14:42    

Bonjour,
 
J'aimerais convertir un fichier contenant beaucoup d'enregistrements (séparés par des espaces) en hexa , en un fichier de sortie avec ces mêmes enregistrements mais en CHAINE (toujours avec un séparateur).
 
J'utilise la commande WHILE READ LINE pour parcourir mon fichier d'entrée en csv, mais je n'arrive pas à trouver comment lui faire reconnaitre le séparateur (l'espace) présent entre les enregistrements.  
 Pour info, lors de mon traitement de conversion, je parcoure ma chaine avec cut.
 
Exemple :
fichier d'entrée .csv (séparateur = espace):  
4d4454ef32 324fe467c3
 
fichier de sortie en txt (séparateur= retour chariot):
bonjour
salut
 
Si quelqu'un a une idée, je suis preneur... merci d'avance pour vos réponses !!!
 

Citation :


#
#       Modif : passage parametre et trt separateur
#
 
FIC_LONG="longueur.txt"
FIC_OUT="toto2.txt"
 
rm -f $FIC_OUT
 
ls -l $1 > $FIC_LONG
 
LONG=`cut -d " " -f 17 $FIC_LONG`
 
echo $LONG
echo
 
 
max=$((1+$LONG))
i=1
 
 
cat $1 | while read line
do
echo $max
 
while [ $i -lt $max ]
       do
 
       echo -en '\x'`echo $line | cut -c $i-$(( i + 1 ))` >> toto2.txt
 
       i=$(( i + 2 ))
 
      done
      i=1
 
done < $1 2>/dev/null
echo
 
~

Reply

Marsh Posté le 12-07-2005 à 21:14:42   

Reply

Marsh Posté le 13-07-2005 à 10:41:41    

Le nombre d'entrées (champs) par ligne est fixe ?
Si c'est le cas tu peux utiliser:
 
cat $1 | while read field1 field2 ... fieldn


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed