명령줄에서 ftp를 통해 일련의 파일을 다운로드해야 합니다. 내가 다운로드하는 서버의 폴더 구조는 다음과 같습니다.
/path/to/file1/abcfile111def
/path/to/file1/abcfile222def
/path/to/file1/abcfile187def
/path/to/file1/abcfile139def
/path/to/file1/abcfile209def
mget
여러 파일과 와일드카드를 다운로드할 수 있는 가능성에 대해 알고 있지만 다운로드에 몇 가지 검색 기준을 적용해야 합니다.
검색 기준은 연결 시 서버가 있는 특정 디렉터리에서 해당 폴더의 모든 하위 디렉터리를 검색하고 파일을 찾고 다음 문자열을 찾는 검색 기준을 적용하는 것입니다.
file100,file101,file102....file199
문자열 조건은 이 숫자 범위와 일치하는 파일을 찾습니다. 어떻게 해야 하나요?
문제가 프로그래밍을 통해서만 해결될 수 있다면 나는 Python에 꽤 능숙하므로 대안을 찾는 데 문제가 없을 것입니다.
답변1
bash 코드를 사용하여 이 솔루션을 만들었습니다.
for i in /path/to/file1/*/*;
do
if [[ ${i##*[[:alpha:]]} =~ [[:digit:]][[:digit:]][[:digit:]] ]]
then
echo $(realpath "$i")
fi
done
이는 파일 이름의 세 숫자(101, 102, 103..., 199)와 일치합니다. echo
command를 ftp
일치하는 각 파일에 대한 명령으로 바꿉니다 . echo
해당 명령어를 이용하여 정상적으로 테스트 및 실행해 보시기 바랍니다 .
경로는 /path/to/file1/*
검색되지 않는 하위 디렉터리가 포함되어 있으므로 중요하므로 검색 경로를 적절하게 /path/to/file1/*/*
변경하세요.