分页: 1 / 1

find 查找一个随机文件

发表于 : 2011-08-26 10:19
mad_frog
各位大神,
find . -type f
a/b/1.txt
c/2.txt
d/3.txt
4.txt
如何只随机输出一个文件啊,比如随机输出a/b/1.txt或是d/3.txt

Re: find 查找一个随机文件

发表于 : 2011-08-26 11:26
eexpress
srand; find . -type f| sed -n "`rand -M `find . -type f|wc -l``p"

这事情,用bash是蛋疼的。
你这样做,有啥意义?

Re: find 查找一个随机文件

发表于 : 2011-08-26 11:36
我就是我2
:em20 :em20 :em20
还没学到数组.数组中的随机一个元素.: 只有曲线救国了

代码: 全选

#!/bin/zsh
for i in `find /tmp/test -type f`
do
name=($name $i);
done
while :
do
num=$((RANDOM%4+1))
echo "${name[$num]}"
sleep 2
done

请赐教 :em06

有个问题, bash和zsh在处理 语句 name=($name $i); 不一样.
bash 不能给name重新赋值
而zsh可以, 行为类似C中 name+=i

Re: find 查找一个随机文件

发表于 : 2011-08-26 19:09
fnan
目录下有超二十万文件,用find等到冒火,改用ls:
f=($(ls -Rail|sed -rn 's/(^\S+) -.*/\1/p'));find -inum ${f[$(($RANDOM$RANDOM%${#f[*]}))]}

Re: find 查找一个随机文件

发表于 : 2011-08-26 19:30
我就是我2
你这样做,有啥意义?
同问LZ

Re: find 查找一个随机文件

发表于 : 2011-09-03 16:15
tusooa
我就是我2 写了::em20 :em20 :em20
还没学到数组.数组中的随机一个元素.: 只有曲线救国了

代码: 全选

#!/bin/zsh
for i in `find /tmp/test -type f`
do
name=($name $i);
done
while :
do
num=$((RANDOM%4+1))
echo "${name[$num]}"
sleep 2
done

请赐教 :em06

有个问题, bash和zsh在处理 语句 name=($name $i); 不一样.
bash 不能给name重新赋值
而zsh可以, 行为类似C中 name+=i
find ... | sort -R | head -n1

Re: find 查找一个随机文件

发表于 : 2011-09-03 16:29
eexpress
sort -R。 tusooa, 是人才。这都注意到了。
只是,能确定这是真随机数不。

Re: find 查找一个随机文件

发表于 : 2011-09-10 9:53
ICEEN
find . -type f |shuf