php apache Windows 云计算 centos 程序员 编程 Android 微软 wordpress nginx linux Ubuntu shell mysql Python java 开源 google Firefox

初学者进:最简单的shuf 命令教程

shuf:把输入行按随机顺序输出到标准输出。


用法: shuf [选项]... [文件]
 或者:  shuf -e [选项]... [参数]...
 或者:  shuf -i LO-HI [选项]...


常用参数:
  -e, --echo			将每个参数视为输入行
  -i, --input-range=LO-HI	将LO 到HI 的每个数字视为输入行
  -n, --head-count=行数		最多输出指定的行数
  -o, --output=文件		将结果输出到指定文件而非标准输出
      --random-source=文件	从指定文件获得随机比特
  -z, --zero-terminated	以0 结束行而非新行
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出


如果没有指定文件,或者文件为"-",则从标准输入读取。

带例子的 shuf 命令教程

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

1
2
3
4
5
6
7
8
9
10
11
12

 

$ cat ostechnix.txt
line1
line2
line3
line4
line5
line6
line7
line8
line9
line10
 

 

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

1
2
3
4
5
6
7
8
9
10
11
12

 

$ shuf ostechnix.txt
line2
line8
line5
line10
line7
line1
line4
line6
line9
line3
 

 

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

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

1
2

 

$ touch output.txt
 

 

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

1
2

 

$ shuf ostechnix.txt -o output.txt
 

 

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

1
2
3
4
5
6
7
8
9
10
11
12
13

 

$ cat output.txt
 
line2
line8
line9
line10
line1
line3
line7
line6
line4
line5
 

 

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

 

 

 

 

1
2
3

 

$ shuf -n 1 ostechnix.txt
line6
 

 

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

1
2
3
4
5
6
7

 

$ shuf -n 5 ostechnix.txt
line10
line4
line5
line9
line3
 

 

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

1
2
3
4
5
6
7

 

$ shuf -e line1 line2 line3 line4 line5
line1
line3
line5
line4
line2
 

 

你也可以传入数字:

1
2
3
4
5
6
7

 

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

 

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

1
2

 

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

 

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

1
2
3
4
5

 

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

 

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

1
2
3
4
5
6
7
8
9
10
11
12

 

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

 

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

1
2

 

$ man shuf
 

 

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

 

 

延伸阅读

  • 抱歉,暂无相关内容!

评论