【busybox记录】【shell指令】shuf

2024-05-08 07:44
文章标签 记录 指令 shell busybox shuf

本文主要是介绍【busybox记录】【shell指令】shuf,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

内容来源:

【GUN】【shuf】指令介绍

【busybox】【shuf】指令介绍

【linux】【shuf】指令介绍

使用示例:

打乱内容 - 默认输出

打乱内容 - 最多输出n行

打乱内容 - 将输出写入文件

打乱内容 - 重复输出

打乱内容 - 打乱本条指令的参数

打乱内容 - 打乱指定范围内的数字

常用组合指令:

指令不常用/组合用法还需继续挖掘:


内容来源:

        GUN : Coreutils - GNU core utilities

        busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客

【GUN】【shuf】指令介绍

shuf:打乱文本
shuf 通过输出输入线的随机排列来打乱其输入。每个输出排列都是等可能的。
简介:
shuf [option]... [file]
shuf -e [option]... [arg]...
shuf -i lo-hi [option]...
Shuf有三种操作模式,影响它获得输入线的位置。默认情况下,它从标准输入中读取行。修改操作模式的选项包括:
‘-e’
‘--echo’ 将每个命令行操作数视为输入行。
‘-i lo-hi’
‘--input-range=lo-hi’就像输入来自一个文件,该文件包含无符号十进制整数lo…hi,每行一个。shuf的其他选项可以影响它在所有操作模式下的行为:
‘-n count’
‘--head-count=count’最多输出行数。默认情况下,输出所有输入行。
‘-o output-file’
‘--output=output-file’将输出写入输出文件,而不是标准输出。shuf在打开输出文件之前读取所有输入,因此你可以使用 shuf -o F < F 和 cat F | shuf -o F 这样的命令安全地将文件打乱。
‘--random-source=file’使用文件作为随机数据的来源,用于确定要生成哪种排列。参见第2.5节[随机来源],第7页。
‘-r’
‘--repeat’重复输出值,即替换选择。使用这个选项,输出不是输入的排列;相反,每一行输出都是从所有输入中随机选择的。这个选项通常与--head-count;如果 --head-count 没有给出,shuf就会无限重复。
‘-z’
‘--zero-terminated’用0字节而不是换行符分隔项(ASCII LF)。例如,将输入视为用ASCII NUL分隔的项目,并以ASCII NUL终止输出项目。此选项可以与`perl -0`或`find -print0`和`xargs -0`一起使用,它们的作用相同,以便可靠地处理任意文件名(即使是包含空格或其他特殊字符的文件名)。例如:
shuf <<EOF
A man,
a plan,
a canal:
Panama!
EOF
可能产生输出
Panama!
A man,
a canal:
a plan,
类似地,命令如下:
shuf -e clubs hearts diamonds spades
可能会输出:
clubs
diamonds
spades
heartsshuf -i 1-4 命令的输出可能是:
4
2
1
3
上面的例子都有4条输入线,因此shuf可能产生输入的24种可能排列中的任何一种。一般来说,如果有n行输入,就有n!(即n的阶乘,或n * (n - 1) *…* 1)可能的输出排列。
要输出50个0 ~ 9范围内的随机数,可以使用:
shuf -r -n 50 -i 0-9
要模拟100次抛硬币,可使用:
shuf -r - n100 -e头尾
退出状态为零表示成功,非零值表示失败。

【busybox】【shuf】指令介绍

NA

【linux】【shuf】指令介绍

[root@localhost bin]# shuf --help
用法: shuf [选项]... [文件]或者:  shuf -e [选项]... [参数]...或者:  shuf -i LO-HI [选项]...
Write a random permutation of the input lines to standard output.如果没有指定文件,或者文件为"-",则从标准输入读取。必选参数对长短选项同时适用。-e, --echo                treat each ARG as an input line-i, --input-range=LO-HI   treat each number LO through HI as an input line-n, --head-count=COUNT    output at most COUNT lines-o, --output=FILE         write result to FILE instead of standard output--random-source=FILE  get random bytes from FILE-r, --repeat              output lines can be repeated-z, --zero-terminated     line delimiter is NUL, not newline--help		显示此帮助信息并退出--version		显示版本信息并退出GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 shuf 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/shuf>
或者在本地使用:info '(coreutils) shuf invocation'

使用示例:

打乱内容 - 默认输出

只是简单的重新排序

指令: shuf test2.txt

打乱内容 - 最多输出n行

-n 选项

指令: shuf -n 10 test2.txt

打乱内容 - 将输出写入文件

-o 选项

指令: shuf -o test.log test2.txt

打乱内容 - 重复输出

-r选项 重复输出值,即替换选择。使用这个选项,输出不是输入的排列;相反,每一行输出都是从所有输入中随机选择的

指令:shuf -n 10 -r test2.txt

打乱内容 - 打乱本条指令的参数

-e 选项

大概就是这个意思

指令: shuf -e 123 45 78 415 48 15 4 12 47

打乱内容 - 打乱指定范围内的数字

-i选项

打乱 1 - 20 之间的数字,可以与其他参数一起使用

指令: shuf -i 1-20

与其他参数一起使用时,需要把参数写在后面

指令: shuf -i 1-20 -n 10

常用组合指令:

NA

指令不常用/组合用法还需继续挖掘:

这篇关于【busybox记录】【shell指令】shuf的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/969730

相关文章

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

关于rpc长连接与短连接的思考记录

《关于rpc长连接与短连接的思考记录》文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实... 目录rpc项目中的长连接与短连接的思考什么是rpc项目中的长连接和短连接与tcp和http的长连接短

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat