Как напечатать список совпадений регулярных выражений, используя переменные и звездочку - PullRequest
0 голосов
/ 18 октября 2019

У меня есть этот список файлов:

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

Не могли бы вы дать мне некоторую подсказку? Спасибо за совет.

1 Ответ

1 голос
/ 18 октября 2019

Вы можете использовать следующее:

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
...