Możesz to zrobić za pomocą R , co może być trochę przesada ...
EDYCJA 2: [OOPS, wygląda na to, że ktoś inny nacisnął Rscript, kiedy to pisałem.] Znalazłem łatwiejszy sposób. Zainstalowany z R powinien być Rscript, który ma robić to, co próbujesz zrobić. Na przykład, jeśli mam plik bar
z listą liczb, po jednym w wierszu:
cat bar | Rscript -e 'summary (as.numeric (readLines ("stdin")))'
Potokuje te liczby do R i uruchamia summary
polecenie R w wierszach, zwracając coś takiego:
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 2.25 3.50 3.50 4.75 6.00
Możesz także zrobić coś takiego:
script -e 'quantile (as.numeric (readLines ("stdin")), probs=c(0.025, 0.5, 0.975))'
zdobyć kwantyle. I oczywiście możesz odciąć pierwszy wiersz wyniku (który zawiera etykiety) za pomocą czegoś takiego:
cat bar | Rscript -e 'summary (as.numeric (readLines ("stdin")))' | tail -n +2
Zdecydowanie poleciłbym najpierw zrobić to, co chcesz w interaktywnym R, aby upewnić się, że masz poprawne polecenie. Próbując tego, pominąłem nawias zamykający, a Rscript nic nie zwraca - brak komunikatu o błędzie, brak wyniku, po prostu nic.
(Dla rekordu pasek plików zawiera:
1
2
3
4
5
6