Эквивалент gnu `sort -R` на OSX?

Эквивалент gnu `sort -R` на OSX?

Утилита GNU sortText имеет нестандартную -Rопцию для рандомизации строк ввода.

В OSX sortнет этого расширения. Есть ли аналогичная функциональность в другом текстовом фильтре?

решение1

Если хотите, можете установить GNU sortчерез GNUcoreutilsпакет болееДомашнее пиво, который представляет собой менеджер пакетов для OS X.

Запуск этой команды установит Homebrew.

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

Затем просто следуйте инструкциям по установке. Когда Homebrew установлен, запустите

brew install coreutils

Это установит GNU sort как gsort, так что вы сможете использовать его как sortв любом GNU Linux.


В качестве альтернативы ознакомьтесь с этими вопросами на Stack Overflow, в которых упоминается несколько методов:

Как рандомизировать строки в файле с помощью стандартных инструментов в Redhat Linux
Как перетасовать строки текстового файла в командной строке Unix?

Или взгляните на эту страницу commandlinefu.com:

Перемешать строки (противоположно сортировке)

решение2

В OS X, если вы не хотите устанавливать Homebrew (но вам это действительно нужно), вы можете использовать perlили ruby:

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

или

ruby -e 'puts STDIN.readlines.shuffle'

решение3

Используйте shufили sortиз coreutilsпакета, но тогда вам придется добавить /usr/local/binв свой файл PATHin ~/.bashrc, например:

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

В качестве альтернативы вы можете попробовать ex:

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

Источник:Как перемешать список в vim?

решение4

Вы можете установить rlкоманду через homebrew ( brew install randomize-lines).

Он довольно быстрый и имеет возможность ограничить количество возвращаемых элементов, а также указать разделитель (например, пробел вместо перевода строки).

(Смотрите такжеhttps://stackoverflow.com/a/42056195/43615.)

Связанный контент