Equivalente ao gnu `sort -R` no OSX?

Equivalente ao gnu `sort -R` no OSX?

O utilitário de texto GNU sortapresenta uma opção não padrão -Rpara randomizar as linhas de entrada.

OSX sortnão possui esta extensão. Existe funcionalidade semelhante disponível em outro filtro de texto?

Responder1

Se desejar, você pode instalar o GNU sortatravés do GNU'scoreutilspacote acabadoCerveja caseira, que é um gerenciador de pacotes para OS X.

Executar 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

Isso instalará o GNU sort as gsort, para que você possa usá-lo como sortem qualquer GNU Linux.


Como alternativa, dê uma olhada nestas perguntas do Stack Overflow, que mencionam alguns métodos:

Como posso randomizar as linhas em um arquivo usando ferramentas padrão no Redhat Linux
Como posso embaralhar as linhas de um arquivo de texto na linha de comando do Unix?

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

Randomizar linhas (oposto de | sort)

Responder2

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

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

ou

ruby -e 'puts STDIN.readlines.shuffle'

Responder3

Use shufou sortdo coreutilspacote, mas você terá que adicionar /usr/local/binao seu PATHarquivo ~/.bashrc, por exemplo:

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

Alternativamente, 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?

Responder4

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

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

(Veja tambémhttps://stackoverflow.com/a/42056195/43615.)

informação relacionada