localiser un séparateur de champ dans un fichier - Shell/Batch - Programmation
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
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 !!!
#
# 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
~