簡體   English   中英

如何在Linux Shell中查找隨機文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM