Equivalente ao gnu 'sort -R' no OSX?

34

O utilitário GNU sort text possui uma opção -R não padrão para randomizar as linhas de entrada.

OSX sort não tem essa extensão. Existe funcionalidade semelhante disponível em outro filtro de texto?

    
por phs 11.09.2011 / 22:48

4 respostas

47

Se você quiser, você pode instalar o GNU sort através do pacote coreutils do GNU sobre Homebrew , que é um gerenciador de pacotes para o OS X.

Rodar isso instalaria o Homebrew.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Depois é só seguir as instruções de instalação. Quando o Homebrew estiver instalado, execute

brew install coreutils

Isto irá instalar o GNU sort como gsort , então você pode usá-lo como sort em qualquer GNU Linux.

Como alternativa, veja estas perguntas sobre estouro de pilha, que mencionam alguns métodos:


Como eu posso embaralhar as linhas de um arquivo de texto na linha de comando do Unix?

Ou dê uma olhada nesta página commandlinefu.com:

Randomize as linhas (oposto de | sort)

    
por 11.09.2011 / 23:02
5

No OS X, se você não quiser instalar o homebrew (mas você realmente deveria), você pode usar perl ou ruby :

perl -MList::Util -e 'print List::Util::shuffle <>'

ou

ruby -e 'puts STDIN.readlines.shuffle'
    
por 17.05.2015 / 23:56
0

Use shuf ou sort do pacote coreutils , mas você terá que adicionar /usr/local/bin ao seu arquivo PATH in ~/.bashrc , por exemplo:

export PATH=/usr/local/sbin:/usr/local/bin:$PATH

Como alternativa, você pode tentar ex :

ex -s +"%s/^/\=reltimestr(reltime())[-2:].' '" +"sort n" +"%s/^\S* //" +%p -cq! /dev/stdin

Fonte: Como embaralhar uma lista no vim?

    
por 18.05.2015 / 00:29
0

Você pode instalar o comando rl via homebrew ( brew install randomize-lines ).

É bastante rápido e tem opções para limitar o número de itens retornados, assim como especificar o delimitador (espaço em vez de avanço de linha, por exemplo).

(Veja também link .)

    
por 26.07.2017 / 10:04

Tags