在OSX上相当于gnu`sort -R`吗?


37

GNU sort文本实用程序具有一个非标准-R选项,可随机输入行。

OSX sort没有此扩展名。其他文本过滤器中是否有类似的功能?

Answers:


50

如果需要,可以sort通过Homebrew通过GNU的coreutils软件包安装GNU ,Homebrew是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上一样使用它。


或者,看看这些堆栈溢出问题,其中提到了两种方法:

如何在Redhat Linux上使用标准工具将文件中的行随机化?
如何在Unix命令行中对文本文件的行进行混编?

或查看以下commandlinefu.com页面:

随机行(与|排序相反)


homebrew选项和链接的awk或perl构造都可以工作(尽管我认为它们较慢)。其余的都不可行,因为它们仅用于GNU。
ph

7

在OS X上,如果您不想安装自制软件(但确实应该安装),则可以使用perlruby

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

要么

ruby -e 'puts STDIN.readlines.shuffle'

0

使用shufsortcoreutils包,但你已经添加/usr/local/bin到您PATH~/.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中随机播放列表?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.