파일 내용 랜덤으로 섞기 - Shuffle the contents of a file

23 February 2017

입력 데이터의 순서를 무작위로 뒤섞고 싶다면 즉 shuffle 하고 싶다면 shuf 명령어를 사용한다.

shuf

shuf는 표준 입력으로 들어오는 line들을 무작위로 뒤섞은 후 표준 출력으로 내보내준다.

$ cat testfile
a
b
c
d
e

$ cat testfile | shuf
c
b
e
d
a

물론 cat 명령어를 거치지 않고, shuf 명령어에 파일명을 직접 넘겨줘도 된다.

$ shuf -n 3 testfile
b
a
d

-n 옵션

무작위로 뒤섞은 내용 중 n개만 추출하여 출력하고 싶다면 -n 옵션을 이용한다.

$ cat testfile | shuf -n 3
c
a
d

-e 옵션

-e 옵션을 사용하면 뒤섞을 내용들을 표준 입력이 아니라 매개변수로 넘겨줄 수도 있다.

$ shuf -e a b c d e
a
c
b
e
d

$ shuf -n 3 -e a b c d e
c
d
a

Use on OS X

Mac의 terminal에서는 coreutils를 설치한 뒤 gshuf 명령어로 동일하게 사용할 수 있다.

# on mac terminal..

$ brew install coreutils
...

$ cat testfile | gshuf -n 3
b
a
c
Jekyll 블로그에서 Emoji 사용하기 Java 8 - 람다 표현식과 함수형 인터페이스