OS X에 shuf를 설치 하시겠습니까?


49

Ubuntu Linux에는 shuf라는 훌륭한 도구가 있습니다.이 도구는 10 개의 임의의 줄을 제공하는 것을 제외하고는 머리처럼 작동합니다. Homebrew에서 찾을 수 없습니다. OS X에 설치하는 가장 간단한 방법은 무엇입니까?


2
gnu 텍스트 유틸리티 패키지의 일부입니다. coreutils의 일부인 것 같지만 홈 브루에 물건을 포장하는 방법을 모르겠습니다.
jl8e

답변:


78

을 사용하여 coreutils를 설치할 수 있습니다 brew install coreutils.

shuf로 연결됩니다 gshuf. coreutils를 설치할 때주의 사항을 읽으십시오.


2
경고는 도구의 올바른 이름을 사용하지 말고 접두사에 g (예 : "gshuf")를 붙여야한다는 것입니다.
Unfun Cat

2
그렇거나 선택적으로 PATH를 구성하여 원하는 것을 얻습니다.
Jay Thompson

3
brew install coreutilsgosx에 기본적으로 접두사 를 사용 하여 utils를 설치하므로 위 명령을 사용하여 설치할 수 있습니다.
Brad Parks

13

또 다른 해결책은 공급 업체가 제공 한 도구에 대해 배우는 것입니다. 물론 당신이 할 수 체인 jot, paste, sort, cut, head와 같은 결과를 얻을 수 있습니다.

jot -r "$(wc -l FILE)" 1 |
paste - FILE |
sort -n |
cut -f 2- |
head -n 10
  • jot는 1에서 각 줄에 대해 FILE의 줄 수에서 난수를 생성합니다.
  • paste는 임의의 숫자를 FILE의 각 줄에 붙여 넣습니다.
  • sort 각 줄의 숫자를 정렬합니다
  • cut은 각 줄에서 난수를 제거합니다
  • 헤드는 처음 10 개의 라인을 출력합니다

2
이 답변의 본질이 정말 마음에
듭니다.

나는 jot전에 들어 본 적이 없다 . 지식을 넓혀 주셔서 감사합니다.
tommy.carstensen

9

Macports를 사용하여 coreutils를 다음과 같이 설치할 수 있습니다

sudo port install coreutils

이것은 GNU 핵심 유틸리티를 / opt / local / bin에 넣고 ag를 붙입니다.

e, g gshuf


2
나는 이것을 macports와 함께 사용했습니다. 감사합니다. 나는 Homebrew를별로 좋아하지 않습니다
Zorgatone

sudo 권한이 있으면 큰 대답 입니다. 난 아니야
tommy.carstensen

@ tommy.carstensen 그런 다음 관리자에게 문의하십시오-그들은 당신이 이유 때문에 이것을하기 어렵게 만들 것입니다
user151019

3

다른 옵션은 randomize-linesshuf rl와 비슷한 기능을 가진 명령 이있는 (homebrew) 패키지 를 설치 하는 것 입니다.

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.