셸 스 크 립 트 는 파일 의 무 작위 중복 선별 을 실현 합 니 다.
4404 단어 Linux
쓸데없는 말 은 그만 하고 코드 를 바로 입력 하 세 요.
#!/bin/bash
trainPath=" "
validationPath=" "
# trainPath
trainDirList=`ls $trainPath`
#
for DirName in $trainDirList
do
cd $trainPath/$DirName
#
dirNum=`ls -l|grep "^-"|wc -l`
picList=`ls *.jpg`
k=0
for fileName in $picList
do
fileNameArr[k]=$fileName
k=$k+1
done
arr=($(seq 1 $dirNum))
num=${#arr[*]}
#
let filterNum=$num*1/4
#
res=${arr[$(($RANDOM%num))]}
fileArr[1]=$res
let i=2
# fileArr ,
while(( i<=filterNum ));
do
res=${arr[$(($RANDOM%num))]}
fileArr[i]=$res
for((j=1;jdo
numJ=${fileArr[j]}
if [[ $res == $numJ ]]; then
unset fileArr[i]
i=$i-1
break
fi
done
i=$i+1
done
cd $validationPath
mkdir $DirName
for((indexNum=0;indexNum<$filterNum;indexNum++))
do
# echo ${fileNameArr[fileArr[indexNum]-1]}
mv $trainPath/$DirName/${fileNameArr[fileArr[indexNum]-1]} $validationPath/$DirName
done
done
상기 코드 에 대해 간략하게 설명 합 니 다. 먼저 모든 데 이 터 를 훈련 집 폴 더 에 넣 은 다음 에 4 분 의 1 의 그림 을 테스트 집 폴 더 에 추출 합 니 다. 중간 에 있 는 큰 코드 는 실제 적 으로 중복 되 지 않 는 랜 덤 수 를 자동 으로 생 성하 기 위해 서 입 니 다.
코드 는 몇 초 만 에 달 릴 수 있 습 니 다. 파일 관리 자 를 열 어 볼 수 있 습 니 다. 이미 선별 이 끝 났 습 니 다. 시간 을 절약 하고 셸 프로 그래 밍 분야 의 지식 을 복습 할 수 있 습 니 다. 왜 기꺼이 하지 않 겠 습 니까?
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바이너리 파일cat 또는tail, 터미널 디코딩 시 처리 방법cat으로 바이너리 파일을 보려고 할 때 코드가 엉망이 되어 식은땀이 났다. 웹에서 스크롤된 정보의 처리 방법과alias의 설정을 요약합니다. reset 명령을 사용하여 터미널을 재설정합니다.이렇게 하면 고치지 못하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.