[英]How to find random files in Linux shell
如何通過Linux Shell從目錄中隨機選擇100個文件。 我閱讀了其他主題,“ shuf”命令可以做到這一點:find。 型f | shuf -n100,但是我們的環境沒有'shuf'cmd。 還有其他方法嗎? 使用bash,awk,sed或其他?
lines. 您可以獲得目錄列表,然后將其隨機化,然后選擇前行。
ls | sort -R | head -n 100
如果要遞歸列表或需要更好地控制要包含的文件,請用適當的find
命令替換ls
。
這應該可以在您的CentOS5上運行:
shuf() { awk 'BEGIN{srand()}{print rand()"\t"$0}' "$@" | sort | cut -f2- ;}
這來自Meow在https://stackoverflow.com/a/2153889/5844347上的評論
像這樣使用: find . -type f | shuf | head -100
find . -type f | shuf | head -100
# To get a integer number between 1 to 100 :
N=`echo|awk 'srand() {print 99*rand() + 1 }' | sed -e "s/\..*$//g"`
echo $N
# To get the Nth file :
find . -type f | head -${N} | tail -1
# To get 100 files randomly :
for i in $(seq 1 100 )
N=`echo|awk 'srand() {print 99*rand() + 1 }' | sed -e "s/\..*$//g"`
find . -type f | head -${N} | tail -1
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.