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