A menos que você se preocupe em reinventar a roda, você também pode usar o GNU datamash
:
alias median 'datamash median 1'
datamash
espera colunas delimitadas por tabulações, embora você possa alterar o delimitador com -t
.
Para o seu problema em particular, note que $parameter
expansão em (t) csh é feita entre aspas duplas, mas ao contrário de shells parecidos com Bourne, não pode ser desativado com barras invertidas, então você precisa de algo como:
alias median "sort -n | awk '{a[NR]="\$"1}; END {x = int(NR/2); print NR % 2 ? a[x+1] : (a[x]+a[x+1])/2}'"
Isso é sair das aspas duplas para inserir o $
as \$
ou seguir a abordagem de Mark e usar aspas simples, mas sair delas para inserir aspas simples literais.