OS X'e shuf yüklenir mi?


49

Ubuntu Linux, size on rastgele satır vermesi dışında kafa gibi çalışan shuf adında harika bir araca sahiptir. Homebrew'da bulamadım. OS X'e kurmanın en basit yolu nedir?


2
Gnu metin araçları paketinin bir parçası. Coreutils'in bir parçası gibi gözüküyor, ama homebrew üzerinde nasıl paketlendiğini bilmiyorum.
jl8e

Yanıtlar:


78

Coreutils ile yükleyebilirsiniz brew install coreutils.

shufolarak bağlanacak gshuf. Coreutils'i takarken uyarıları okuyun.


2
Uyarı, araçların doğru adlarını kullanmamanız gerektiği, fakat onları g ("gshuf" gibi) önekleriyle koymanız gerektiği gibi görünüyor, değil mi?
Unfun Kedisi,

2
Evet, ya da isteğe bağlı olarak PATH'inizi yapılandırın, böylece beklentilerinizi alabilirsiniz.
Jay Thompson,

3
brew install coreutilsutils'i önek gile varsayılan olarak osx üzerine kurar , böylece yukarıdaki komutu kullanarak yükleyebilirsiniz.
Brad Parks

13

Yine bir başka çözüm, satıcı tarafından tedarik edilen araçları öğrenmek. Kesinlikle yapabildin zincir jot, paste, sort, cut, headve aynı sonuçları elde.

jot -r "$(wc -l FILE)" 1 |
paste - FILE |
sort -n |
cut -f 2- |
head -n 10
  • jot, her satır için FILE içindeki 1'den satır sayısına rasgele bir sayı üretir
  • yapıştır, FILE’deki her satıra rastgele sayıyı yapıştırır
  • sıralama her satırı sayısal olarak sıralar
  • cut, her satırdaki rasgele sayıyı kaldırır
  • head ilk 10 satırı çıkarır

2
Bu cevabın özünü gerçekten seviyorum, ne olursa olsun başka bir makinede aynı şeyi ne zaman yapmak istemeyeceğinizi asla bilemeyeceksiniz
19

Daha önce hiç duymamıştım jot. Bilgimi genişlettiğin için teşekkürler.
tommy.carstensen

9

Coreutils'i Macports ile kurabilirsiniz.

sudo port install coreutils

Bu, GNU çekirdek öğelerini / opt / local / bin dizinine, ag hazırlandığı şekilde koyacaktır.

Örneğin gshuf


2
Bunu macports ile kullandım, teşekkürler. Homebrew'i pek sevmiyorum
Zorgatone

Suudi haklarınız varsa çok iyi cevap . Yapmıyorum.
tommy.carstensen

@ tommy.carstensen Daha sonra yöneticinize sorun - bunu bir nedenden ötürü sizin için zorlaştırmış olacaklar
user151019

3

Başka bir seçenek de, shuf ile aynı işlevselliğe randomize-linessahip bir rlkomuta sahip olan (homebrew) paketi kurmaktır.

Usage: rl [OPTION]... [FILE]...
Randomize the lines of a file (or stdin).

  -c, --count=N  select N lines from the file
  -r, --reselect lines may be selected multiple times
  -o, --output=FILE
                 send output to file
  -d, --delimiter=DELIM
                 specify line delimiter (one character)
  -0, --null     set line delimiter to null character
                 (useful with find -print0)
  -n, --line-number
                 print line number with output lines
  -q, --quiet, --silent
                 do not output any errors or warnings
  -h, --help     display this help and exit
  -V, --version  output version information and exit
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.