linux随机抽取文件|linux怎么使用dd命令生成随机内容的大量小文件

linux随机抽取文件|linux怎么使用dd命令生成随机内容的大量小文件的第1张示图

A. linux shell怎么从20W数据中随机的抽取2W

#!/bin/bashsort -R a.txt | head -20000##sort随机排序,然后取前20000,实现出来就是随机抽取20000.

B. 如何用linux语言抽取fasta文件中部分样品序列

我只知道fstab 在/etc 这个是关键文件 所有系统都有 指定系统存储的 你只能修改它 不用创建它 改不好系统就完蛋了 。。。

C. 如何在Linux系统通过命令行生成随机文件

A、当你不需要关心随机文件的内容,只需一个固定大小的文件 1、Solaris、Mac OS X等Unix系统中mkfile指令,可以产生指定大小的文件,而Linux上则没有 例子:mkfile -n 160g test12、Linux可以用dd指令,/dev/zero是一个特别的文件描述符可以通过它返回null值 例子:dd if=/dev/zero of=test.file count=1024 bs=1024 产生count * bs字节的文件,1M 此方法生成随机文件的好处在于效率高(产生1G文件大概1s),创建的文件大小精确到字节 坏处也有 使用null字符来填充文件内容,文件统计时没有行(wc -l test.file为0) B、当你不需要关心随机文件的内容,但期望测试文件能有统计的行 将/dev/zero改为/dev/urandom,/dev/urandom是linux下的随机数生成器 关于/dev/urandom跟/dev/random两者的区别就不在此详细讨论,大概就是,前者是不受系统interrupts的限制,即使没有足够的interrupt它也能通过随机数生成器产生足够的输出值;而后者如果用在dd上,它不能被ctrl+c或者kill -9中断,如果ds的值较大时,产生的随机值不足而长期占用CPU。虽然说/dev/random产生的随机数会更随机些,但与dd混用还是建议用/dev/urandom效率更高。 缺点跟/dev/zero比当然是效率会更低些了,生成个100Mb的文件需要10秒左右,而且文件并没有可读的内容,一般的情况基本上是满足了。 漏了说句,dd是linux与unix都支持的指令。 C、当你关心文件的随机内容行数,而不关心内容是否有所重复 这里的思路就是找一个参照文件(比如说2行),将文件重新定向到新的文件,再mv覆盖保存,外加一个for循环。(n为循环次数,产生的文件行为2^(n+1)) 例子:假设先建立一个file.txt文件,里面含有Hello 和 World两行 for i in {1..n}; do cat file.txt file.txt > file2.txt && mv file2.txt file.txt; done 由于是阶乘,n=20左右已经是200W行,效率会下降地比较厉害 D、当你关心随机文件的内容,而不想出现重复内容行情况 这种情况下系统的指令应该是不能满足了,或者可以通过操作系统的指令写一大串脚本也可以达到,但不建议这么做,因为可读性和维护性考虑,你应该要引入Ruby或者Python类的脚本语言帮忙了 但还是要借助些系统的东西来帮忙 思路: /usr/share/dict/words里面有记录一些单词,一共235886行,每行一个单词 可以从里面挑选一些作为文件的内容 加循环达到我们想要的随机文件要求 举例: ruby -e 'a=STDIN.readlines;X.times do; b=[];Y.times do; b<<a[rand(a.size)].chomp end; puts b.join(" ")' < /usr/share/dict/words > file.txt X为随机文件需要的行数,Y为从words中读取的单词,虽说组合成一句的命令,还是可以读懂的;从标准输入中重复读取Y个单词,写入到b列表中,然后再通过join空格连接内容写入到标准输出文件file.txt中 这样基本很少会有重复的行了,而且生成的效率与其他方法对比还是可以的,10秒生成100Mb文件。欢迎大家讨论。

D. linux shell 怎么从数组变量中随机抽取一个数出来

a=(123456)len=${#a[@]}index=$((RANDOM%len))echo${a[$index]}

E. linux中如何把一个文件随机命名,比如产生一个随机数,然后把某个文件重命名为这个随机数.iso

touch file[1-9] ##表示随即建立名为file1-9的九个文件

F. linux怎么使用dd命令生成随机内容的大量小文件

使用dd命令快速生成大文件或者小文件的方法 转载请说明出处:http://blog.csdn.net/cywosp/article/details/9674757 在程序的测试中有些场景需要大量的小文件或者几个比较大的文件,而在我们的文件系统里一时无法找到那么多或者那么大的文件,此时linux的dd命令就能快速的帮助你完成想要的文件。具体用法简单总结如下:1. dd命令可以轻易实现创建指定大小的文件,如dd if=/dev/zero of=test bs=1M count=1000在当前目录下会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源),但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢。在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘则可以dd if=/dev/zero of=test bs=1M count=0 seek=100000此时创建的文件在文件系统中的显示大小为100000MB,但是并不实际占用block,因此创建速度与内存速度相当,seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的。当然,因为不实际写入硬盘,所以你在容量只有10G的硬盘上创建100G的此类文件都是可以的。2. 随机生成1百万个1K的文件seq 1000000 | xargs -i dd if=/dev/zero of={}.dat bs=1024 count=1

G. linux中如何给文件夹内的所有文件进行随机重命名

使用cp命令进行复制,格式为: cp 文件名 另外一个目录的完整路径/新的文件名比如专,将/opt文件夹中的test文件,复制到属/var文件夹内,并重命名为test2,命令如下: cp /opt/test /var/test2

H. Linux中的find和grep命令对查找到的文件如何处理啊

Linux中find命令查找到文件后通过-exec参数执行shell命令,案例如下:

#-execcommand{};将查到的文件执行command操作,{}和;之间有空格find/-namefilename-execrm-rf{};#查找名字为filename的文件,然后执行rm删除命令

Linux中grep命令查找到文件后通过|(管道符)传递给后面命令执行,案例如下:

ls-l|grepfilename|rm-rf#查找名字为filename的文件,然后执行rm删除命令

I. linux下,把一个文件夹中的文件随机复制到另一个文件夹该用什么命令呢,主要是随机。

一到一还谈什么随机?

如果是一个文件夹中的文件随机复制到N个文件夹中的一个,那么可以把N个文件夹的路径放到一个数组变量中,并用 $RANDOM 来产生随机数,对数组长度取余后作为下标。

#!/bin/bashdests=(/dest/a/dest/b/dest/c/destd)forfin*;docp"$f"${dests[((RANDOM%${#dests[@]}))]done

J. linux shell 随机抽取一副扑克牌中一张

suites=(Clubs Dianonds Hearts Spades Joker)deno=(2 3 4 5 6 7 8 9 10 Jack Queen King Ace)var=(red black)num_suites=${#suites[@]}num_deno=${#deno[@]}num_var=${#var[@]}var1=$((RANDOM%$num_suites))if [ "${suites[$var1]}" == "Joker" ];thenecho " Joker of "echo ${var[$((RANDOM%$num_var))]}elseecho "${deno[$((RANDOM%$num_deno))]} of "echo ${suites[$var1]}fi

未经允许不得转载:山九号 » linux随机抽取文件|linux怎么使用dd命令生成随机内容的大量小文件

赞 (0)