2013-07-09 59 views
1

我想從字典中取出至少6個字符的所有單詞,隨機化單詞的順序並將其存儲在文本文件中。如何在Mac OS中隨機化Egrep結果

我試過以下命令,但排序-R選項在Mac中不可用。

下面的命令是工作

egrep -i "^.{6,}$" /usr/share/dict/words | sort -r >words.txt 

sort -r(反向排序)是工作,但sort -R(隨機排序)不工作

下面的命令不工作

egrep -i "^.{6,}$" /usr/share/dict/words | sort -R >words.txt 

任何其他方式我可以將單詞列表的順序隨機化。

任何幫助表示讚賞。

+1

是'shuf'在那裏嗎? –

+2

不需要花哨的egrep;只是'grep'^ ......'''會做。 – Jens

回答

3

嘗試這樣做,如果你有shuf

grep '^.\{6,\}' /usr/share/dict/words | shuf 

或用 &

grep '^.\{6,\}' /usr/share/dict/words | 
    perl -MList::Util=shuffle -e 'print shuffle <>' 

或只

perl -MList::Util=shuffle -ne ' 
    /^.{6,}/ and push @L, $_; 
    END{print shuffle @L} 
' < /usr/share/dict/words 

List::Util首次發佈時使用的是perl v5.7.3,所以它默認安裝了perl。

+0

這不會輸出任何7個或更多的字符。 – Jens

+0

nope shuf在我的Macbook bash中也不可用:( –

+0

'shuf' for OS X:http://www.64lines.com/shuf-mac-osx-php –