|
|
|
|
移动端

给初学者看的shuf命令教程

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

作者:Sk来源:Linux中国|2018-05-14 08:53

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

http://s5.51cto.com/oss/201805/14/e0d1337fd8dc7ec67f0f0d795aef6363.png-wh_651x-s_2524406842.png

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

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

【编辑推荐】

  1. Windows、macOS和Linux正遭受重大安全漏洞影响!
  2. 如何在Linux上查看用户的创建日期
  3. 千万千万不可运行的Linux命令
  4. 在Ubuntu和Linux Mint中轻松安装Android Studio
  5. 女生适不适合进入IT行业做Linux运维工程师?
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java for Flash动态网站开发手札

本书深入浅出地说明了如何利用Java、Flash及XML进行Flash富媒体应用程序的开发。 本书知识丰富,内容结构合理,包括:Flash影片应用程序与...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊