我有一个bash脚本来从ftp中检索文件。
现在文件的一部分是文件名中的日期字符串,但是每个文件上都有未定义的数字。我想根据日期下载文件。
这是我的代码。我只需要做通配符技巧,ftp脚本已经全部工作了。
filename=$(echo $TIMESTAMP'0***vel.radar.h5')
星星是3个数字,有不同的数字,我无法估计,所以我会使用通配符。
谢谢
答案 0 :(得分:1)
听起来您想处理多个文件,但您的脚本一次只能处理一个文件。此外,因为你指定了FTP,听起来好像文件在FTP服务器上,在这种情况下,本地文件名扩展将无济于事。
您可能希望使用ftp客户端的mget
命令下载与远程端模式匹配的多个文件。您还希望将$TIMESTAMP
作为模式的一部分。我建议这样的事情:
ftp remote-hostname <<EOF
cd path/to/log/files
prompt
mget ${TIMESTAMP}0???vel.radar.h5
bye
EOF
它使用here-document(单独一行<<EOF
到EOF
)来向ftp命令提供输入文本。它将扩展变量$TIMESTAMP
,使其成为mget
命令的一部分,例如如果$ TIMESTAMP为12345,则会告诉ftp命令mget 123450???vel.radar.h5
。
答案 1 :(得分:0)
示例:
如果您有以下文件:
$ ls
0123vel.h5 0333vel.h5 033vel.h5 0pecvel.h5
用这个你显示正确的文件:
$ ls 0[0-9][0-9][0-9]vel.radar.h5
0123vel.h5 0333vel.h5