Ich habe mehrere hundert Textdateien, die jeweils aus fünf tabulatorgetrennten Spalten bestehen. Die erste Spalte enthält einen Index und die folgenden vier die Anzahl der Vorkommen. Jetzt möchte ich die Anzahl der Zeilen, die 3 Spalten enthalten, mit 0 zählen (also 7 Zeilen im Beispiel unten).
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
Ich kann dies als Schleife in R codieren, aber da die Originaldateien jeweils über 60 Millionen Zeilen enthalten, frage ich mich, ob es keine Problemumgehung mit awk oder sed und wc -l gibt.
Akzeptierte Antwort:
Mit GNU sed:
sed -E 's/\t0\>/&/3;t;d' file | wc -l
Wie Isaac darauf hingewiesen hat, wenn wir genau 3 zählen wollen, tun Sie dies:
sed -n 's/\t0\>//4;t;s//&/3p' file | wc -l