Installer shuf sur OS X?


49

Ubuntu Linux possède un excellent outil appelé shuf, qui fonctionne comme une tête sauf qu'il vous donne dix lignes aléatoires. Je ne pouvais pas le trouver sur Homebrew. Quel est le moyen le plus simple de l’installer sur OS X?


2
Cela fait partie du paquet gnu text utilities. Semble faire partie de coreutils, mais je ne sais pas comment les choses sont emballées sur des homebrews.
jl8e

Réponses:


78

Vous pouvez installer coreutils avec brew install coreutils.

shufsera lié comme gshuf. Lisez les mises en garde lorsque vous installez coreutils.


2
La mise en garde semble simplement être que vous ne devriez pas utiliser les noms propres des outils, mais les préfixer avec g (comme "gshuf"), n'est-ce pas?
The Unfun Cat

2
Oui, ou configurez éventuellement votre PATH pour obtenir ce que vous attendez.
Jay Thompson

3
brew install coreutilsinstalle les utilitaires avec le préfixe gpar défaut sur osx afin que vous puissiez l'installer à l'aide de la commande ci-dessus.
Brad Parks

13

Une autre solution consiste à se renseigner sur les outils fournis par le fournisseur. Certes , vous pourriez chaîne jot, paste, sort, cut, headet obtenir les mêmes résultats.

jot -r "$(wc -l FILE)" 1 |
paste - FILE |
sort -n |
cut -f 2- |
head -n 10
  • jot produit un nombre aléatoire de 1 au nombre de lignes du fichier pour chaque ligne
  • coller colle le nombre aléatoire à chaque ligne du fichier
  • trier trier numériquement chaque ligne
  • cut supprime le nombre aléatoire de chaque ligne
  • head affiche les 10 premières lignes

2
J'aime vraiment l'essence de cette réponse, vous ne savez jamais quand vous voudrez peut-être faire la même chose sur une autre machine où vous ne pouvez pas installer d'outils supplémentaires pour une raison quelconque
forquare

Je n'avais jamais entendu parler de jotavant. Merci d'avoir élargi mes connaissances.
tommy.carstensen

9

Vous pouvez installer coreutils avec Macports en tant que

sudo port install coreutils

Cela mettra les utilitaires principaux GNU dans / opt / local / bin avec ag ​​ajouté

par exemple gshuf


2
J'ai utilisé celui-ci avec macports, merci. Je n'aime pas beaucoup Homebrew
Zorgatone

Excellente réponse si vous avez des droits sudo. Je ne.
tommy.carstensen

@ tommy.carstensen Ensuite, demandez à votre administrateur - il vous aura été difficile de le faire pour une raison
user151019

3

Une autre option consiste à installer le randomize-linespackage (homebrew), qui contient une rlcommande ayant une fonctionnalité similaire à 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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.