我正在执行以下步骤:
我陷入了第三步。我不确定如何从名称中提取日期并为名称创建目录。谁能帮忙
下面是我想要的粗略代码
#!/usr/bin/env bash
root_dir=/abc/def/
temp_dir=/tmp/
wdir=$root_dir/<needed_date> #This date should be extracted from file name
set sftp:connect-program "ssh -a -x -o StrictHostKeyChecking=no"
sftp -P 7010 -oIdentityFile=~/.ssh/id_rsa_nst abcd@<ip> <<EOF
get -r dir1 $temp_dir
get -r dir2 $temp_dir
quit 0
EOF
cd $temp_dir/dir1
unzip '*.zip' $wdir
cd $temp_dir/dir2
unzip '*.zip' $wdir
假设您的文件名data15061956.zip存储在变量zipfile
中。如果您确定知道文件名始终具有这种格式,则可以通过
datepart=$(tr -dc '[:digit:]' <<<$zipfile)
此方法只是丢弃(-dc
)不是数字的任何内容。
另一种可能性(不需要子进程)是>
datepart=${zipfile:4:8}
这假定日期存储在文件名中的某个位置。