![Equivalente ao gnu `sort -R` no OSX?](https://rvso.com/image/1289074/Equivalente%20ao%20gnu%20%60sort%20-R%60%20no%20OSX%3F.png)
O utilitário de texto GNU sort
apresenta uma opção não padrão -R
para randomizar as linhas de entrada.
OSX sort
não possui esta extensão. Existe funcionalidade semelhante disponível em outro filtro de texto?
Responder1
Se desejar, você pode instalar o GNU sort
atravé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 sort
em 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:
Responder2
No OS X, se você não quiser instalar o homebrew (mas realmente deveria), você pode usar perl
ou ruby
:
perl -MList::Util -e 'print List::Util::shuffle <>'
ou
ruby -e 'puts STDIN.readlines.shuffle'
Responder3
Use shuf
ou sort
do coreutils
pacote, mas você terá que adicionar /usr/local/bin
ao seu PATH
arquivo ~/.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
Responder4
Você pode instalar o rl
comando 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.)