Bonjour ,sous unix je cherche dans un fichier et à une position bien précise le nombre de fois ou une valeur est présente : Ex : nombre de fois ou la valeur '0' est présente entre la colonne '104' et '105'
Merci de votre aide
Version imprimable
Bonjour ,sous unix je cherche dans un fichier et à une position bien précise le nombre de fois ou une valeur est présente : Ex : nombre de fois ou la valeur '0' est présente entre la colonne '104' et '105'
Merci de votre aide
tu peux pas le faire one-shot mais tu peux oui
l idée est de lister la colonne qui t intéresse | chercher en mode comptage le pattern que tu cherchesCode:
1
2
3
4
5
6
7
8
9
10 francois@h2g2:~$ cat > toto 11111111111111111111111111111111111111111111111111111111111111111111111111111111^[[B^[[B^[[B^[[B^[[B^[[B^[[B111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111 francois@h2g2:~$ cut -c91 toto | grep -c 0 1 francois@h2g2:~$ francois@h2g2:~$ cut -c33 toto | grep -c 0 0 francois@h2g2:~$ rm toto
ici colonne 91 y a 1 zero
mais colonne 33 ya pas (0 zero )
salut,
sauf que grep -c justement ne compte pas le nombre d'occurrences sur la même ligne mais uniquement le nombre de lignes sur lesquelles au moins une occurrence est présente
si on considère ce fichier :
dans lequel on cherche à compter pour chaque ligne le nombre de 1 entre les 6ème et 15ème colonnes, on doit pouvoir envisager un truc comme ça :Code:
1
2
3 -----0001001000----- -----0111001000----- ---1-0000000000-----
à valider / il y a possiblement mieuxCode:
1
2
3
4 $ cut -c6-15 fichier | while read line; do echo $line | sed 's/./&\n/g' | grep -c 1; done 2 4 0
bien vu la colonne peut ne pas etre un caractere unique :)