我有此文件列表:
perspectium-02-16-2019-1.log.gz perspectium-07-27-2019-3.log.gz perspectium-10-18-2019-1.log.gz
perspectium-07-27-2019-1.log.gz perspectium-10-16-2019-1.log.gz perspectium-10-18-2019-2.log.gz
perspectium-07-27-2019-2.log.gz perspectium-10-17-2019-1.log.gz perspectium-10-18-2019-3.log.gz
我计算了一个日期:
d=$(date -d '-1 day' '+%m-%d-%Y')
我要删除符合条件的那些文件:
perspectium-$d-*.log.gz
但是,如果我对此做出回应,它将按字面意义打印星号,因此它将不匹配任何文件:
perspectium-10-17-2019-*.log.gz
您能给我一些线索吗?感谢您的建议。
您可以使用以下内容:
output=`ls perspectium-$d-*.log.gz`
echo $output
或
for file in perspectium-$d-*.log.gz
do
echo $file
done;
或只是不加引号:
echo perspectium-$d-*.log.gz
但是,正如已经说过的,要注意匹配不正确的可能问题。
这里为您输出情况:
[root@pro-sip tmp]# d=10-18-2019
[root@pro-sip tmp]# ls perspectium-$d-*.log.gz
perspectium-10-18-2019-1.log.gz perspectium-10-18-2019-2.log.gz
[root@pro-sip tmp]# for i in perspectium-$d-*.log.gz
> do
> echo $i
> done;
perspectium-10-18-2019-1.log.gz
perspectium-10-18-2019-2.log.gz
[root@pro-sip tmp]# echo perspectium-$d-*.log.gz
perspectium-10-18-2019-1.log.gz perspectium-10-18-2019-2.log.gz