求助-shell随机取目录中的一个文件

sh/bash/dash/ksh/zsh等Shell脚本
回复
kbens85
帖子: 16
注册时间: 2012-03-31 11:52

求助-shell随机取目录中的一个文件

#1

帖子 kbens85 » 2012-04-25 15:29

求助:例如 A目录下有 好多文件夹 和文件
我想每次从A目录里面 随机抽取一个文件 有什么好方法吗?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 求助-shell随机取目录中的一个文件

#2

帖子 eexpress » 2012-04-25 15:34

ls -1|sed -n '`$RANDOM % 50`p'
大概这样。50可以ls -1|wc -l
自己调试。
● 鸣学
kbens85
帖子: 16
注册时间: 2012-03-31 11:52

Re: 求助-shell随机取目录中的一个文件

#3

帖子 kbens85 » 2012-04-25 15:39

eexpress 写了:ls -1|sed -n '`$RANDOM % 50`p'
大概这样。50可以ls -1|wc -l
自己调试。

多谢,我调试下。。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 求助-shell随机取目录中的一个文件

#4

帖子 lilydjwg » 2012-04-25 16:38

代码: 全选

ls | sort -R | head -n1
我喜欢这样。
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 求助-shell随机取目录中的一个文件

#5

帖子 aerofox » 2012-04-25 17:30

也以可这样:

代码: 全选

files=(*)
echo ${files[((RANDOM%${#files[*]}))]}
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 求助-shell随机取目录中的一个文件

#6

帖子 lilydjwg » 2012-04-26 15:22

aerofox 写了:也以可这样:

代码: 全选

files=(*)
echo ${files[((RANDOM%${#files[*]}))]}
方案不错,不过我想把 find -H ~/音乐 -type f -name '*.mp3' 的结果每行一个元素存到数组里怎么弄呢?我用的 zsh。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 求助-shell随机取目录中的一个文件

#7

帖子 eexpress » 2012-04-26 15:35

嗯。忘记sort -R了。越简单越好。

一个shell,搞啥数组。蛋疼的哦。至少搞下hash嘛。
● 鸣学
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 求助-shell随机取目录中的一个文件

#8

帖子 lilydjwg » 2012-04-26 15:41

eexpress 写了:嗯。忘记sort -R了。越简单越好。

一个shell,搞啥数组。蛋疼的哦。至少搞下hash嘛。
zsh 有 associative array 的哦~
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 求助-shell随机取目录中的一个文件

#9

帖子 eexpress » 2012-04-26 15:54

啥哦,在pl前面,都是废品。
在shell上,不浪费时间。
● 鸣学
kbens85
帖子: 16
注册时间: 2012-03-31 11:52

Re: 求助-shell随机取目录中的一个文件

#10

帖子 kbens85 » 2012-05-02 14:30

lilydjwg 写了:

代码: 全选

ls | sort -R | head -n1
我喜欢这样。

我这centos5.2的测试机上,sort 还没有-R 的选项呢。
kbens85
帖子: 16
注册时间: 2012-03-31 11:52

Re: 求助-shell随机取目录中的一个文件

#11

帖子 kbens85 » 2012-05-02 14:35

aerofox 写了:也以可这样:

代码: 全选

files=(*)
echo ${files[((RANDOM%${#files[*]}))]}
可以详解下这个的意思吗?有点看不太懂。。。
头像
tarenafeng
帖子: 158
注册时间: 2012-03-16 16:09
联系:

Re: 求助-shell随机取目录中的一个文件

#12

帖子 tarenafeng » 2012-05-02 14:49

随机调取
做人要达内修外(请不要点我,我只是一个签名)
回复