![OSX 上的 gnu `sort -R` 等效項?](https://rvso.com/image/1289074/OSX%20%E4%B8%8A%E7%9A%84%20gnu%20%60sort%20-R%60%20%E7%AD%89%E6%95%88%E9%A0%85%EF%BC%9F.png)
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 上,如果您不想安裝自製程式(但您確實應該安裝),您可以使用perl
或ruby
:
perl -MList::Util -e 'print List::Util::shuffle <>'
或者
ruby -e 'puts STDIN.readlines.shuffle'
答案3
使用shuf
或sort
來自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
) 安裝指令。
它非常快,並且具有限制返回項目數量的選項,以及指定分隔符號(例如,空格而不是換行符)。