텍스트 줄의 무작위 배열

텍스트 줄의 무작위 배열

다음 내용이 포함된 파일이 있는 경우:

0001
0002
0003
0004
0132
0137
0138
0141

Bash에서 무작위 순열을 얻으려면 어떻게 해야 합니까?

답변1

shuf당신이 찾고있는 명령입니다.

에서 man shuf,

-n, --head-count=최대 COUNT 라인에서 COUNT 출력

예를 들어 파일에서 무작위로 4개의 줄을 얻으려면 다음을 사용합니다.

shuf -n 4 file

다음 방법을 사용할 수도 있습니다.

head -$((${RANDOM} % `wc -l < file` + 1)) file | tail -1

이 중 마지막 파이프는 출력에서 ​​원하는 행 수를 지정합니다.

인용하다

https://stackoverflow.com/questions/448005/whats-an-easy-way-to-read-random-line-from-a-file-in-unix-command-line

답변2

coreutils에서 다음 중 하나를 사용하여 sort이 작업을 수행 할 수 있습니다.

sort -R file
sort --random-sort file
sort --sort=random file

에서 man sort:

  -R, --random-sort
          sort by random hash of keys

   --sort=WORD
          sort according to WORD: general-numeric -g, human-numeric -h, month
          -M, numeric -n, random -R, version -V

관련 정보