[Shell] sélection chaine de caractères
koma_666
Messages postés
473
Statut
Membre
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour,
J'ai un fichier texte contenant plusieurs chaines de caractères délimitées par une virgule :
chaine1,chaine2,chaine3,chaine4,chaine5,chaine6,chaine7,chaine8,chaine9,chaine10,chaine11,chaine12,etc.
Je souhaiterais extraire, par exemple, les 3 premières chaines, et les injecter dans fichier1.txt, puis les 3 chaines suivantes, injecter dans fichier2.txt, puis les 3 chaines suivantes, etc.
Ce qui donnerait :
Fichier1.txt
chaine1,chaine2,chaine3
Fichier2.txt
chaine4,chaine5,chaine6
etc.
Je pensais utiliser faire une boucle avec un cut :
stop=0
while [ stop != 100 ]
do
a=1
d=1
f=3
cut -d"," -f$d-$f contenu.txt > fichier$a.txt
d=$(($d+3)
f=$(($f+3)
stop++
a++
done
Mais visiblement, le cut n'accepte pas les variables dans son -f.
Vous auriez une solution ?
Merci d'avance.
J'ai un fichier texte contenant plusieurs chaines de caractères délimitées par une virgule :
chaine1,chaine2,chaine3,chaine4,chaine5,chaine6,chaine7,chaine8,chaine9,chaine10,chaine11,chaine12,etc.
Je souhaiterais extraire, par exemple, les 3 premières chaines, et les injecter dans fichier1.txt, puis les 3 chaines suivantes, injecter dans fichier2.txt, puis les 3 chaines suivantes, etc.
Ce qui donnerait :
Fichier1.txt
chaine1,chaine2,chaine3
Fichier2.txt
chaine4,chaine5,chaine6
etc.
Je pensais utiliser faire une boucle avec un cut :
stop=0
while [ stop != 100 ]
do
a=1
d=1
f=3
cut -d"," -f$d-$f contenu.txt > fichier$a.txt
d=$(($d+3)
f=$(($f+3)
stop++
a++
done
Mais visiblement, le cut n'accepte pas les variables dans son -f.
Vous auriez une solution ?
Merci d'avance.
A voir également:
- [Shell] sélection chaine de caractères
- Classic shell - Télécharger - Personnalisation
- Caractères spéciaux - Guide
- Caractères ascii - Guide
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
1 réponse
Cela ne pose pas de problème:
Par contre l'auto-incréméntation n'existe pas en bash.
a++ => a=$(($a +1 ))
johand@osiris: ~/src/CCM/bash $ cat mydata.txt chaine1,chaine2,chaine3,chaine4,chaine5,chaine6,chaine7,chaine8,chaine9,chaine10,chaine11,chaine12 laine1,laine2,laine3,laine4,laine5,laine6,laine7,laine8,laine9,laine10,laine11,laine12 daine1,daine2,daine3,daine4,daine5,daine6,daine7,daine8,daine9,daine10,daine11,daine12 johand@osiris: ~/src/CCM/bash $ d=1; f=3 ;cut -d"," -f$d-$f < mydata.txt chaine1,chaine2,chaine3 laine1,laine2,laine3 daine1,daine2,daine3 johand@osiris: ~/src/CCM/bash $ d=$(($d+3)); f=$(($f +3)) ;cut -d"," -f$d-$f < mydata.txt chaine4,chaine5,chaine6 laine4,laine5,laine6 daine4,daine5,daine6
Par contre l'auto-incréméntation n'existe pas en bash.
a++ => a=$(($a +1 ))
Par contre l'auto-incréméntation n'existe pas en bash.
a++ => a=$(($a +1 ))
Si si ;-\
((a++))
;-)