ITPub博客

首页 > Linux操作系统 > Linux操作系统 > shuf -- 产生随机的排列

shuf -- 产生随机的排列

原创 Linux操作系统 作者:flowpp_206 时间:2022-08-30 14:14:01 0 删除 编辑

shuf -- 产生随机的排列

随机生成10次抛硬币结果

 
[user@master]
$ shuf 
-r 
-n 
10 
-e 
'正面' 
'反面'

  正面
  反面
  正面
  反面
  反面
  反面
  正面
  反面
  反面
  正面

主要用途

  • 将输入的内容随机排列并输出。

  • 当没有文件或文件为 - 时,读取标准输入。

选项

 

-e           将每个 ARG 视为输入行

  -i           将数字范围 LO (最低)到 HI (最高)之间的数字作为输入行
  -n           只输出前 COUNT 行
  -o           将结果写入到文件而不是标准输出
  -r           输出行可以重复
  -z           行终止符为 NUL (空字符) 而不是默认的换行符

参数

FILE (可选): 要处理的文件,可以为任意数量,以空格分隔。

ARG (可选): 作为输入行的字符串,可以为任意数量,以空格分隔。

返回值

返回0标识成功,返回非0标识失败。

例子

使用 -e 标志传入输入。

 
[user@master]
$ shuf 
-e Monday Tuesday Wednesday Thursday Friday Saturday Sunday      

  Monday
  Wednesday
  Thursday
  Saturday
  Sunday
  Tuesday
  Friday

使用 -i 标志。

 
[user@master]
$ shuf 
-i 
1
-10

  6
  3
  7
  8
  5
  4
  9
  2
  10
  1

使用 -n 标志。

 
[user@master]
$ shuf 
-n 
5 
-i 
1
-10

  1
  10
  3
  5
  7

使用 -o 参数。

  • 如果指定的文件不存在,则会自动创建文件并写入结果

  • 如果指定的文件已经存在,则会先清空内容,再写入结果

 
[user@master]
$ shuf 
-i 
1
-10 
-o result.txt

  [user@master] $ cat result.txt
  1
  9
  3
  7
  6
  4
  5
  8
  2
  10

使用 -r 标志。

 
[user@master]
$ shuf 
-n 
10 
-e a b c d

  d
  a
  c
  b
  [user@master] $ shuf -r -n 10 -e a b c d
  a
  a
  a
  d
  d
  d
  a
  b
  d
  b

使用 -z 标志。

全部输出都在同一行

 
[user@master]
$ shuf 
-r 
-z 
-n 
10 
-e a b c d

  cbbbadbcbc

其他:

 
[user@master]
$ shuf 
-i 
1
-100 
-n 
5 && shuf 
-i 
200
-300 
-n 
5                    

  96
  11
  34
  2
  29
  273
  208
  278
  257
  271
  [user@master] $ shuf -i 1 -100 -n 5 | sort -n && shuf -i 200 -300 -n 5 | sort -n
  30
  33
  40
  47
  63
  208
  221
  245
  268
  269



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70021587/viewspace-2912581/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2022-08-30

  • 博文量
    1
  • 访问量
    395