linux命令行随机排列

不及物动词 其他 32

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    要在Linux命令行中实现随机排列,可以使用`shuf`这个命令。`shuf`命令会随机打乱并输出给定输入中的行。

    语法格式如下:
    “`bash
    shuf [选项]… [文件]
    “`

    选项说明:
    – `-e, –echo`:将输入视为命令行参数而不是文件名。
    – `-n, –head-count=<行数>`:从输入中选择指定数量的行数。
    – `-o, –output=<文件名>`:将输出写入指定的文件中。
    – `-r, –repeat`:允许重复行。
    – `-i, –input-range=<范围>`:指定输入的范围。范围值为`start-end`或`start,step,end`的形式。

    下面是一些示例用法:

    1. 从文件中随机排列行:
    “`bash
    shuf example.txt
    “`

    2. 从命令行参数中随机排列行:
    “`bash
    shuf -e “apple” “banana” “orange”
    “`

    3. 从文件中选择指定行数:
    “`bash
    shuf -n 5 example.txt
    “`

    4. 将输出写入文件:
    “`bash
    shuf example.txt -o shuffled.txt
    “`

    5. 允许重复行:
    “`bash
    shuf -r example.txt
    “`

    6. 指定输入范围:
    “`bash
    shuf -i 1-10
    “`

    上述示例中,`example.txt`是一个包含多行文本的文件。你可以根据需要调整命令行参数和选项,实现你想要的随机排列效果。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux命令行中,有多种方法可以随机排列文本文件的行。下面是其中几种常见的方法:

    1.使用shuf命令
    `shuf` 是一个用于将文本文件的行随机排列的命令。可以使用以下命令来随机排列一个文件的行:

    “`
    shuf file.txt
    “`

    如果你希望将结果输出到一个新文件中,可以使用重定向操作符:

    “`
    shuf file.txt > shuffled.txt
    “`

    2.使用sort命令
    `sort` 命令也可以用来随机排列文件的行。可以使用 `-R` 选项来告诉 `sort` 命令随机排序行:

    “`
    sort -R file.txt
    “`

    同样,你可以使用重定向操作符将结果输出到新文件:

    “`
    sort -R file.txt > shuffled.txt
    “`

    3.使用awk命令
    `awk` 是一个功能强大的文本处理工具,也可以用来随机排列文件的行。可以使用以下命令来随机排列文件的行:

    “`
    awk ‘BEGIN { srand() } { print rand(), $0 }’ file.txt | sort -k1,1n | cut -d” ” -f2-
    “`

    这个命令首先为随机数生成器 `srand()` 初始化种子,然后打印每一行的随机数和该行的内容。接着使用 `sort` 命令将结果按照第一列的数值排序,并使用 `cut` 命令去掉第一列。

    4.使用Python脚本
    如果你更喜欢使用Python来完成任务,你可以使用以下的Python脚本来随机排列文件的行:

    “`
    import random

    with open(‘file.txt’, ‘r’) as f:
    lines = f.readlines()
    random.shuffle(lines)

    with open(‘shuffled.txt’, ‘w’) as f:
    f.writelines(lines)
    “`

    这个脚本首先打开源文件,并将文件的所有行保存到一个列表中。然后使用 `random.shuffle` 函数随机排列列表中的元素。最后,将排列后的列表内容写入到目标文件中。

    5.使用Perl脚本
    类似地,你也可以使用Perl脚本来随机排列文件的行:

    “`
    #!/usr/bin/perl

    use strict;
    use warnings;
    use List::Util ‘shuffle’;

    # 打开源文件
    open(my $input, “<", "file.txt") or die "Can't open input file: $!";# 读取所有行到一个数组中my @lines = <$input>;

    # 随机排列数组中的行
    my @shuffled = shuffle(@lines);

    # 打开目标文件
    open(my $output, “>”, “shuffled.txt”) or die “Can’t open output file: $!”;

    # 将排列后的行写入目标文件
    print $output @shuffled;

    # 关闭文件句柄
    close($input);
    close($output);
    “`

    这个Perl脚本跟Python脚本类似,首先打开源文件,将所有行读取到一个数组中,然后使用 `List::Util` 模块的 `shuffle` 函数随机排列数组中的元素。最后,将排列后的行写入目标文件。

    这些都是在Linux命令行中随机排列文本文件行的一些常见方法。选择其中一种方法,根据你的需求和偏好来进行操作。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux操作系统中,可以使用一些命令行工具来实现随机排列的功能。下面介绍两种常用的方法:使用shuf命令和使用awk命令。

    方法一:使用shuf命令
    shuf命令用于随机排列输入的行。它可以从文件中读取输入,也可以接受标准输入作为输入。

    操作流程:
    1. 打开终端。
    2. 输入以下命令:
    “`
    shuf 文件名 # 从文件中读取输入
    “`
    或者
    “`
    命令 | shuf # 将命令的输出作为输入
    “`
    其中,文件名是包含要随机排列的内容的文件的名称,命令是要产生输入的命令。
    3. 执行命令后,shuf命令将输出随机排列的结果。

    方法二:使用awk命令
    awk命令是一个强大的文本处理工具,它可以用于多种用途,其中之一就是将输入进行随机排列。

    操作流程:
    1. 打开终端。
    2. 输入以下命令:
    “`
    awk ‘BEGIN{ srand() }; {print rand()”\t”$0}’ 文件名 | sort -k1,1n | cut -f 2-
    “`
    其中,文件名是包含要随机排列的内容的文件的名称。
    3. 执行命令后,awk命令将输出随机排列的结果。

    以上两种方法都可以实现将输入进行随机排列的功能。根据实际需求选择适合的方法即可。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部