Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
insertion dans des lignes
Envoyé par: flow

Bonjour,

j'ai un fichier "toto" compose de ligne delimité par un ";"

le 5eme champ de mes lignes contient une valeur numerique de 4 chiffres.

comment je peux faire pour que dans chaque ligne, je me place au 5eme champ et j'insere le symbole ":" apres les 2 premiers chiffres?

Merci de votre aide

Poste le Tuesday 31 August 2004 12:56:20
Répondre     Citer    
Re: insertion dans des lignes
Envoyé par: Sve@r

#!/bin/sh
rm -f ficher2
cat toto|while read ligne
do
deb_lig=`echo $ligne |cut -f1-4 -d";"`
champ=`echo $ligne |cut -f5 -d";"`
fin_lig=`echo $ligne |cut -f6- -d";"`

debut=`echo $num |cut -c1,2`
fin=`echo $num |cut -c3,4`

echo "$deb_lig;$debut:$fin;$fin_lig" >>fichier2
done



L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Tuesday 31 August 2004 14:54:50
Répondre     Citer    
Re: insertion dans des lignes
Envoyé par: starter

Merci pour ton aide.

Quand je teste ce code, ça marche mais j'ai les lignes qui se repetent. alors je me suis pris differement :

je recupere dans une variable le 5eme champ.

var=`echo $i | cut -d";" -f5`

apres, j'essaye de mettre un sed dans la meme expression pour inserer le ":" apres les 2 chiffres mais la j'ai une erreur (sed : expression grambded)

si vous connaissez la syntaxe.

Merci

Poste le Tuesday 31 August 2004 15:39:02
Répondre     Citer    
Re: insertion dans des lignes
Envoyé par: Sve@r

J'ai fait une erreur, j'ai modifié une variable sans reprendre la modif dans les lignes "debut=" et "fin="

Code rectifié:
#!/bin/sh
rm -f ficher2
cat toto|while read ligne
do
deb_lig=`echo $ligne |cut -f1-4 -d";"`
champ=`echo $ligne |cut -f5 -d";"`
fin_lig=`echo $ligne |cut -f6- -d";"`

debut=`echo $champ |cut -c1,2`
fin=`echo $champ |cut -c3,4`

echo "$deb_lig;$debut:$fin;$fin_lig" >>fichier2
done

Là, cela devrait être bon...



L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Tuesday 31 August 2004 20:20:07
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
insertion dans des lignes
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons