Bonjour à tous
J'avais posté sur ce forum il y a quelques jours, et j'avais eu un super coup de main de la part d'un forumeur
Comme j'ai de nouveau des problèmes, je reviens vers vous
J'ai un fichier texte de ce style là:
salut_toi comment_vas pas_mal et_toi_mon bichon_des_alpes
alalala_je ne_sais_plus quoi_mettre
comme_texte
pfff
En gros un texte de n lignes, avec y mots dans chaque ligne (les mots sont séparés par des espaces).
J'ai besoin de savoir combien il y a de mots dans chaque ligne. Ca donnerait:
4
3
2
1
Le nouveau fichier peut écraser l'ancien, ce n'est pas un soucis.
J'ai un début de code, qui donne ca:
En fait je me dit qu'il suffit de compter le nombre d'espace de chaque ligne + 1 pour avoir le nombre de mot par ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #!/usr/bin/env perl my $fileName=$ARGV[0]; open(FILE,$fileName) || die("Cannot Open File"); my(@fcont) = <FILE>; close FILE; open(FOUT,">$fileName") || die("Cannot Open File"); foreach $line (@fcont) { $line =~ grep -c \/t; $compte=$line + 1 print FOUT $compte; } close FOUT;
Mais je ne suis pas sur du tout que mon script soit bon (surtout le grep). Si vous avez des conseils, n'hésitez pas.
D'ailleurs j'ai une autre petite question:
idéalement mon fichier de sortie serait comme ca:
OTU1 4
OTU2 3
OTU3 2
OTU4 1
Mais la je ne sais pas du tout comment aborder le probleme
Merci d'avance pour vos conseils!
Yonathan
Partager