给初学者看的shuf命令教程

系统 Linux
shuf 命令用于在类 Unix 操作系统中生成随机排列。使用 shuf 命令,我们可以随机打乱给定输入文件的行。shuf 命令是 GNU Coreutils 的一部分,因此你不必担心安装问题。在这个简短的教程中,让我向你展示一些 shuf 命令的例子。

[[229194]] 

shuf 命令用于在类 Unix 操作系统中生成随机排列。使用 shuf 命令,我们可以随机打乱给定输入文件的行。shuf 命令是 GNU Coreutils 的一部分,因此你不必担心安装问题。在这个简短的教程中,让我向你展示一些 shuf 命令的例子。

带例子的 shuf 命令教程

我有一个名为 ostechnix.txt 的文件,内容如下:

  1. $ cat ostechnix.txt
  2. line1
  3. line2
  4. line3
  5. line4
  6. line5
  7. line6
  8. line7
  9. line8
  10. line9
  11. line10

现在让我们以随机顺序显示上面的行。为此,请运行:

  1. $ shuf ostechnix.txt
  2. line2
  3. line8
  4. line5
  5. line10
  6. line7
  7. line1
  8. line4
  9. line6
  10. line9
  11. line3

看到了吗?上面的命令将名为 ostechnix.txt 中的行随机排列并输出了结果。

你可能想将输出写入另一个文件。例如,我想将输出保存到 output.txt 中。为此,请先创建 output.txt

  1. $ touch output.txt

然后,像下面使用 -o 标志将输出写入该文件:

  1. $ shuf ostechnix.txt -o output.txt

上面的命令将随机随机打乱 ostechnix.txt 的内容并将输出写入 output.txt。你可以使用命令查看 output.txt 的内容:

  1. $ cat output.txt
  2.  
  3. line2
  4. line8
  5. line9
  6. line10
  7. line1
  8. line3
  9. line7
  10. line6
  11. line4
  12. line5

我只想显示文件中的任意一行。我该怎么做?很简单!

  1. $ shuf -n 1 ostechnix.txt
  2. line6

同样,我们可以选择前 “n” 个随机条目。以下命令将只显示前五个随机条目:

  1. $ shuf -n 5 ostechnix.txt
  2. line10
  3. line4
  4. line5
  5. line9
  6. line3

如下所示,我们可以直接使用 -e 标志传入输入,而不是从文件中读取行:

  1. $ shuf -e line1 line2 line3 line4 line5
  2. line1
  3. line3
  4. line5
  5. line4
  6. line2

你也可以传入数字:

  1. $ shuf -e 1 2 3 4 5
  2. 3
  3. 5
  4. 1
  5. 4
  6. 2

要快速在给定范围选择一个,请改用此命令:

  1. $ shuf -n 1 -e 1 2 3 4 5

或者,选择下面的任意三个随机数字:

  1. $ shuf -n 3 -e 1 2 3 4 5
  2. 3
  3. 5
  4. 1

我们也可以在特定范围内生成随机数。例如,要显示 1 到 10 之间的随机数,只需使用:

  1. $ shuf -i 1-10
  2. 1
  3. 9
  4. 8
  5. 2
  6. 4
  7. 7
  8. 6
  9. 3
  10. 10
  11. 5

有关更多详细信息,请参阅手册页。

  1. $ man shuf

 

今天就是这些。还有更多更好的东西。敬请关注!

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2018-04-08 14:47:06

Linux命令type

2018-04-24 11:09:13

LinuxShellfc

2011-04-12 10:13:24

2018-02-23 10:03:30

Linux命令mkdir

2011-07-04 14:14:54

java

2010-06-13 11:13:38

UML初学者指南

2018-02-24 10:38:06

Linux命令rmdir

2018-04-16 08:33:39

Linux命令uniq

2016-11-18 17:40:35

2018-04-02 11:59:04

Linux命令ln

2020-07-29 08:26:40

Webpack前端模块

2013-12-12 10:20:00

JavaScript学习

2009-06-23 13:32:48

JavaScript初窍门

2022-06-15 15:30:29

Linux新用户建议

2011-04-08 15:07:40

C++

2020-09-18 09:02:20

JavaScript

2011-08-24 17:05:01

Lua

2009-02-18 11:10:40

c++忠告方法

2016-11-11 20:33:53

Hadoop大数据云计算

2024-03-06 09:31:34

SQL数据库数据结构
点赞
收藏

51CTO技术栈公众号