¿Equivalente a gnu `sort -R` en OSX?

¿Equivalente a gnu `sort -R` en OSX?

La utilidad de texto GNU sortpresenta una opción no estándar -Rpara aleatorizar las líneas de entrada.

OSX sortno tiene esta extensión. ¿Existe una funcionalidad similar disponible en otro filtro de texto?

Respuesta1

Si lo deseas, puedes instalar GNU sorta través de GNU.coreutilspaquete terminadocerveza casera, que es un administrador de paquetes para OS X.

Ejecutar esto instalaría Homebrew.

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

Luego simplemente siga las instrucciones de instalación. Cuando Homebrew esté instalado, ejecute

brew install coreutils

Esto instalará GNU ordenado como gsort, para que puedas usarlo como sorten cualquier GNU Linux.


Alternativamente, eche un vistazo a estas preguntas de Stack Overflow, que mencionan un par de métodos:

¿Cómo puedo aleatorizar las líneas en un archivo usando herramientas estándar en Redhat Linux?
¿Cómo puedo mezclar las líneas de un archivo de texto en la línea de comando de Unix?

O eche un vistazo a esta página de commandlinefu.com:

Aleatorizar líneas (opuesto a | ordenar)

Respuesta2

En OS X, si no quieres instalar homebrew (pero realmente deberías hacerlo), puedes usar perlo ruby:

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

o

ruby -e 'puts STDIN.readlines.shuffle'

Respuesta3

Utilice shufo sortdesde coreutilsel paquete, pero luego deberá agregarlo /usr/local/bina su archivo PATHde entrada ~/.bashrc, por ejemplo:

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

Alternativamente puedes probar ex:

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

Fuente:¿Cómo mezclar una lista en vim?

Respuesta4

Puede instalar el rlcomando a través de homebrew ( brew install randomize-lines).

Es bastante rápido y tiene opciones para limitar la cantidad de elementos devueltos, así como especificar el delimitador (espacio en lugar de avance de línea, por ejemplo).

(Ver tambiénhttps://stackoverflow.com/a/42056195/43615.)

información relacionada