J'ai plusieurs centaines de fichiers texte composés chacun de cinq colonnes délimitées par des tabulations. La première colonne contient un index et les quatre suivantes le nombre d'occurrences. Maintenant, je voudrais compter le nombre de lignes contenant 3 colonnes avec 0 (c'est-à-dire 7 lignes dans l'exemple ci-dessous).
1 0 0 0 9
2 0 9 0 0
3 10 0 0 0
4 0 10 4 0
5 0 0 0 10
6 0 0 0 10
7 0 0 0 10
8 0 10 0 0
9 5 0 5 0
Je peux coder cela comme une boucle dans R, mais comme les fichiers d'origine contiennent chacun plus de 60 millions de lignes, je me demande s'il n'y a pas de solution de contournement avec awk ou sed et wc -l.
Réponse acceptée :
Utilisation de GNU sed :
sed -E 's/\t0\>/&/3;t;d' file | wc -l
Comme l'a souligné Isaac, si nous voulons compter exactement 3, faites ceci :
sed -n 's/\t0\>//4;t;s//&/3p' file | wc -l