Сохраните в наборе файлов только 3 сохраненных файла с датой (т.е. добавленную дату в файлах) и удалите оставшиеся файлы в определенном каталоге.

У меня есть один сценарий, который мне нужно реализовать в Unix. В каталоге я хотел бы удалить файлы на основе добавленной даты в конце файла, эти файлы являются XML-файлами назад. Файлы должны быть удалены на основе следующих критериев. Сохраните в наборе файлов только 3 сохраненных файла с датой (Дата добавления в файлах) и удалите оставшиеся файлы.

Файлы каталогов: –

Комплект 1:

Wf_ABC_201801011224.xml wf_ABC_201801011220.xml Wf_ABC_201801011241.xml wf_ABC_201801011230.xml Wf_ABC_201801011244.xml wf_ABC_201801011260.xml 

Набор 2:

 Wf_DCB_201501021224.xml wf_DCB_201601031220.xml Wf_DCB_201601041241.xml wf_DCB_201401051230.xml Wf_DCB_201701061244.xml wf_DCB_201801061260.xml 

Набор 3:

 Wf_XYZ_201501011224.xml wf_XYZ_201601011220.xml Wf_XYZ_201701011241.xml wf_XYZ_201801011230.xml Wf_XYZ_201801021244.xml wf_XYZ_201801031260.xml Wf_XYZ_201501041224.xml wf_XYZ_201601051220.xml Wf_XYZ_201601061241.xml wf_XYZ_201401071230.xml Wf_XYZ_201701081244.xml wf_XYZ_201801091260.xml 

2 Solutions collect form web for “Сохраните в наборе файлов только 3 сохраненных файла с датой (т.е. добавленную дату в файлах) и удалите оставшиеся файлы в определенном каталоге.”

Попробуй это,

 D1=`date -d "1 day ago" +"%Y%m%d"` && D2=`date -d "2 day ago" +"%Y%m%d"` && D=`date +"%Y%m%d"` && find . -type f -name "wf_*_*.xml" -not -name "wf_*_$D*.xml" -not -name "wf_*_$D1*.xml" -not -name "wf_*_$D2*.xml" -exec rm {} + 
  • сохранить последние 3 даты в D1, D2 и D
  • найти файлы с шаблоном wf_*_*.xml
  • затем проигнорируйте скороговорки с последними 3 датами как wf_*_$D*.xml , wf_*_$D1*.xml и wf_*_$D2*.xml
  • затем удалите файлы

Попробуй это:

 for set in ABC DCB XYZ; do printf "%s\n" [Ww]f_${set}_*.xml | sort -t_ -k3,3n | head -n -3 | xargs echo rm done 

Если похоже, что он нашел нужные файлы, перезапустите его без echo

Interesting Posts

Как выполнить итерацию списка и скопировать файлы из machineB и machineC эффективно?

Домашний каталог пользователя Virtualbox

Может ping, но не может сделать ssh

Курьер IMAP, TLS и доверенные IP-адреса

Стоп-стопы / автопогрузчики

Сжатие / домашний раздел до двух разделов

Запуск простого скрипта с systemd при завершении работы или перезагрузке

Использование «зарезервированных» кодов для статуса выхода сценариев оболочки

Как скопировать каталог, у которого root не может получить доступ к каталогу, доступ к которому может получить только root?

Изменение оболочки по умолчанию на Python

Как установить grub на новый диск?

Как использовать регулярное выражение BRE или ERE для соответствия шаблону, который не имеет определенной строки

Индексирование рабочего стола с помощью KDE

Есть ли способ получить имя рабочей среды?

Два файла с общим полем – можно ли сортировать один на основе другого?

Linux и Unix - лучшая ОС в мире.