Você pode fazer isso com o R , que pode ser um pouco exagerado ...
EDIÇÃO 2: [OOPS, parece que alguém bateu com o Rscript enquanto eu estava redigitando isso.] Encontrei uma maneira mais fácil. Instalado com o R deve ser o Rscript, que serve para fazer o que você está tentando fazer. Por exemplo, se eu tiver um arquivo bar
que tenha uma lista de números, um por linha:
cat bar | Rscript -e 'summary (as.numeric (readLines ("stdin")))'
Irá canalizar esses números para R e executar o summary
comando de R nas linhas, retornando algo como:
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 2.25 3.50 3.50 4.75 6.00
Você também pode fazer algo como:
script -e 'quantile (as.numeric (readLines ("stdin")), probs=c(0.025, 0.5, 0.975))'
para obter quantis. E você poderia obviamente cortar a primeira linha de saída (que contém etiquetas) com algo como:
cat bar | Rscript -e 'summary (as.numeric (readLines ("stdin")))' | tail -n +2
Eu recomendo fazer o que você deseja no R interativo primeiro, para garantir que você tenha o comando correto. Ao tentar isso, deixei de fora os parênteses de fechamento e o Rscript não retorna nada - nenhuma mensagem de erro, nenhum resultado, apenas nada.
(Para o registro, a barra de arquivos contém:
1
2
3
4
5
6