2016-06-17 10 views
1

Ich habe eine Datei mit einer Reihe von Eingaben von 0-100 variiert. Ich möchte den Prozentsatz der Zahlen unterhalb einer Reihe von Werten generieren.Prozentsatz der Zahlen in einem Bereich

Ist es möglich, es in awk zu tun? Kann mir jemand ein Beispiel dafür zeigen?

 Eg input file: 1, 4, 6, 7, 7, 7, 8, 9, 2, 4 
    output: 
     below 2: 20% 
     below 4: 40% 
     below 6: 50% 
     below 8: 90% 

** enthalten unter oder gleich

+0

Ja. Veröffentlichen Sie einen [mcve] mit übersichtlicher, testbarer Beispieleingabe und erwarteter Ausgabe und wir können Ihnen helfen. –

Antwort

0

Unter der Annahme, Daten in a.txt Datei:

awk -v limit=16 '$1 < limit {count++} END {print 100*count/NR}' a.txt 

Wo limit den Cutoff-Wert ist, es zählt nur die Elemente kleiner als Grenzwert ($1 < limit), und nachdem alle Zeilen gelesen wurden, wird der Zählerstand geteilt durch die Anzahl der Datensätze ausgegeben (NR).

+0

Verwenden Sie niemals Großbuchstaben für Variablennamen, da sie mit eingebauten Namen kollidieren können. Wie beschrieben, erhalten Sie bei einer leeren Datei einen Fehler durch Division durch Null. –

+0

Korrigiert das Limit, aber wie für leere Datei ist es ein Fehlerfall, denn was soll 100 oder 0 geschrieben werden? –

+0

Danke. Das funktioniert. – zerodb