OSX 上的 gnu `sort -R` 等效項?

OSX 上的 gnu `sort -R` 等效項?

GNU文字實用程式具有一個用於隨機化輸入行的sort非標準選項。-R

OSXsort沒有這個擴充。其他文字過濾器是否有類似的功能?

答案1

如果需要,您可以sort透過 GNU's安裝 GNU核心工具包裝結束自製,這是 OS X 的套件管理器。

執行此命令將安裝 Homebrew。

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

然後只需按照安裝說明進行操作即可。安裝 Homebrew 後,運行

brew install coreutils

這會將 GNU 類型安裝為,因此您可以像在任何 GNU Linux 上gsort一樣使用它。sort


或者,看看這些 Stack Overflow 問題,其中提到了幾種方法:

如何使用 Redhat Linux 上的標準工具隨機化檔案中的行
如何在 Unix 命令列中打亂文字檔案的行?

或看看這個 commandlinefu.com 頁面:

隨機化行(與 | 排序相反)

答案2

在 OS X 上,如果您不想安裝自製程式(但您確實應該安裝),您可以使用perlruby

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

或者

ruby -e 'puts STDIN.readlines.shuffle'

答案3

使用shufsort來自coreutils包,但是你必須添加/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中打亂列表?

答案4

您可以rl透過 homebrew ( brew install randomize-lines) 安裝指令。

它非常快,並且具有限制返回項目數量的選項,以及指定分隔符號(例如,空格而不是換行符)。

(也可以看看https://stackoverflow.com/a/42056195/43615.)

相關內容