lftp에서 정규식을 사용하여 파일 이름의 특정 문자열 무시

lftp에서 정규식을 사용하여 파일 이름의 특정 문자열 무시

mget을 사용하여 디렉터리에서 abc_yyyymmdd_hhmmss.csv라는 특정 파일을 가져옵니다. 폴더의 샘플 파일:

abc_20221202_145911.csv
abc_20221202_145921.csv
abc_20221202_145941.csv
abc_20181202_145941.csv

하지만 hhmmss 부분은 무시하고 싶습니다. abc_20221202_*.csv가 포함된 모든 파일을 가져오고 싶습니다.

mget.h에 *my 코드를 포함시키는 방법은 다음과 같습니다.

File=abc
Date=20221202
Filename=$File$Date"_*".csv
// Assume I have sftp connection established and I am in directory //where files with above naming convention are present. As I can //download the file when hardcoding exact file name during testing
conn='lftp $protocol://$user:$password@$sftp_server -p $port <<DOWNLOAD>/error.log
cd $path
mget $Filename
DOWNLOAD'

스크립트는 파일을 찾을 수 있지만 서버에서 검색할 수는 없습니다. 그러나 *를 제거하고 전체 파일 이름 abc_20221202_145941.csv를 제공하면 파일이 다운로드됩니다. *가 파일 검색에 문제를 일으키는 이유

답변1

논평할 만큼 평판이 좋지 않습니다.

수동으로 ftp를 입력하고 실행해 보셨나요 mget abc_20221202_*.csv? - 스크립트 외부에서도 작동하나요?

또한 내가 읽은 일부 기사에서는 cd먼저 폴더로 이동한 다음 mget abc_20221202_*.csv.

다른 기사에서는 mget을 전체 경로로 실행해야 한다고 나와 있으므로 mget /full/path/to/files/abc_20221202_*.csv.

관련 정보