¿Instalar shuf en OS X?

38

Ubuntu Linux tiene una gran herramienta llamada shuf, que funciona a la perfección, excepto que te da diez líneas aleatorias. No pude encontrarlo en Homebrew. ¿Cuál es la forma más sencilla de instalarlo en OS X?

    
pregunta The Unfun Cat 22.08.2014 - 17:53

4 respuestas

66

Puedes instalar coreutils con brew install coreutils .

shuf se vinculará como gshuf . Lea las advertencias cuando instale coreutils.

    
respondido por el Jay Thompson 22.08.2014 - 18:30
12

Otra solución más es conocer las herramientas proporcionadas por el proveedor. Ciertamente, podría encadenar jot , paste , sort , cut , head y obtener los mismos resultados.

jot -r "$(wc -l FILE)" 1 |
paste - FILE |
sort -n |
cut -f 2- |
head -n 10
  • jot produce un número aleatorio de 1 al número de líneas en el ARCHIVO para cada línea
  • pegar pega el número aleatorio en cada línea en ARCHIVO
  • ordenar clasifica numéricamente cada línea
  • cortar elimina el número aleatorio de cada línea
  • la cabeza produce las primeras 10 líneas
respondido por el fd0 10.07.2015 - 20:55
8

Puedes instalar coreutils con Macports como

sudo port install coreutils

Esto pondrá las utilidades principales de GNU en / opt / local / bin con una g precedida

e, g gshuf

    
respondido por el Mark 10.07.2015 - 19:55
3

Otra opción es instalar el paquete randomize-lines (homebrew), que tiene un comando rl que tiene una funcionalidad similar a shuf.

Usage: rl [OPTION]... [FILE]...
Randomize the lines of a file (or stdin).

  -c, --count=N  select N lines from the file
  -r, --reselect lines may be selected multiple times
  -o, --output=FILE
                 send output to file
  -d, --delimiter=DELIM
                 specify line delimiter (one character)
  -0, --null     set line delimiter to null character
                 (useful with find -print0)
  -n, --line-number
                 print line number with output lines
  -q, --quiet, --silent
                 do not output any errors or warnings
  -h, --help     display this help and exit
  -V, --version  output version information and exit
    
respondido por el rogerdpack 10.07.2015 - 19:36

Lea otras preguntas en las etiquetas