shell 指令碼實現檔案的隨機無重複篩選

2021-08-01 05:16:39 字數 1337 閱讀 7422

在做深度學習實驗時,需要訓練和測試較多型別的資料,以此來體現網路架構的合理性。不同的資料集數量不一,且列別繁多,在做影象分類實驗時,如果人工的去篩選和劃分,工作量巨大,還容易犯錯。作為一名合格的程式設計師,不會偷懶是萬萬不行的!

廢話不多說,直接上**:

#!/bin/bash

trainpath="此處寫訓練集的路徑"

validationpath="此處寫測試集的路徑"

# trainpath下的所有資料夾

traindirlist=`ls $trainpath`

# 遍歷存有訓練集的資料夾

for dirname in

$traindirlist

docd

$trainpath/$dirname

# 當前類別資料夾下總數

# 需要轉移到另外對應資料夾下的總數

let filternum=$num*1/4

# 先隨機生成乙個指定範圍的數字作為初始值

res=$

filearr[1]=$res

let i=2

# 將所有生成的隨機數儲存進filearr陣列,作為要轉移的的下標

while(( i<=filternum ));

dores=$

filearr[i]=$res

for((j=1;jdo

numj=$

if [[ $res == $numj ]]; then

unset filearr[i]

i=$i-1

break

fidone

i=$i+1

done

cd$validationpath

mkdir $dirname

for((indexnum=0;indexnum<$filternum;indexnum++))

do# echo $

mv $trainpath/$dirname/$

$validationpath/$dirname

done

done

**幾秒鐘就可以跑完,開啟檔案管理器檢視,已經篩選完畢,省時省力,還能溫習一下 shell 程式設計方面的知識,何樂而不為?

shell 指令碼實現檔案打包

將sent資料夾中的txt檔案壓縮到successful中對應資料夾中,若是沒有資料夾建立乙個 test3.sh bin bash date date y m for dir in ls file path file type 1 do 子目錄為資料夾 if echo dir grep then 去...

Shell指令碼實現對檔案編輯

常見linux檔案的編輯命令 vi vim,有時候我們想寫乙個指令碼實現對檔案編輯,這個時候,可能就不夠用了,下面介紹一些辦法 1 echo命令 shell的echo命令常用於字串的輸出 例如 root mdw zxy echo hello world file1 root mdw zxy cat ...

Shell指令碼實現對檔案編輯

常見linux檔案的編輯命令 vi vim,有時候我們想寫乙個指令碼實現對檔案編輯,這個時候,可能就不夠用了,下面介紹一些辦法 1 echo命令 shell的echo命令常用於字串的輸出 例如 root mdw zxy echo hello world file1 root mdw zxy cat ...