Bonjour,
j'aimerai compter le nombre d’occurrences de chaque mots dans un fichier texte, par exemple le suivant :
Lorsque j'exécute le script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Kandro@linux:~$ cat truc de monde depuis de monde depuis
j'obtiens
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 #!/bin/bash for mot in $(cat truc) do grep -o "$mot" truc > compteur set `wc -l compteur ` if [ $1 -gt 0 ] then echo "$mot : $1">>mots sed 's/'$mot'/ /g' truc > txttemp cat txttemp>truc fi done
J'ai essayé de palier à ce problème en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Kandro@linux:~$ cat mots de : 6 Kandro@linux:~$ cat truc mon puis mon puis
Mais là le terminal me dit qu'il y a une erreur de syntaxe dans sed, et je n'arrive pas à la retrouver.
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 for mot in $(cat truc) do grep -o "$mot" truc > compteur set `wc -l compteur ` if [ $1 -gt 0 ] then echo "$mot : $1">>mots sed 's/[[:space:]]'$mot'[[:space]]/ /g' truc > txttemp sed 's/^'$mot'[[:space]]/ /g' txttemp>truc sed 's/[[:space:]]'$mot'$/ /g' truc > txttemp sed 's/^'$mot'$/ /g' txttemp>truc fi done
Partager