Скрипт оболочки, который передает файл, который берет дату от till(Nov1) до to(Dec1) из имени

Скрипт оболочки, который передает файл, который берет дату от till(Nov1) до to(Dec1) из имени

Хорошо, этот скрипт может показаться сложным, но я не знаю, как этого добиться.

Итак, вот требование.

введите описание изображения здесь

Пожалуйста, обратите внимание на вышеуказанные файлы.

filname следующие.

Meter_20200120100846.xls
Meter_20200121100846.xls
Meter_20200122100846.xls
Meter_20200123100846.xls
Meter_20200124100846.xls
Meter_20200125100846.xls

Поэтому я хочу создать такой скрипт, который копирует эти файлы на другой сервер. Но вот в чем загвоздка: число в конце — это дата этого файла. Таким образом, 20200120 в файле 1 означает, что он был создан 20/01/2020.

так что по сути я хочу создать такой скрипт, который принимает входные данные как 20/01/2020 или 20200120к25/01/2020 или 20200125 и скопируйте все файлы на другой сервер с тем же именем.

Я могу использовать что угодно для копирования scp, sftp или rsync в команде.

по сути, создается такой скрипт, который берет данные с даты по конечную дату и копирует все файлы на другой сервер.

Честно говоря, я не знаю, возможно ли это вообще сделать.

но ребята, если вы знаете такое решение, то оно мне очень поможет.

Спасибо и с уважением, Сагар Мандал

решение1

Если я правильно вас понял:

# Here you set the range of dates
from="20200121" 
to="20200125"
for f in *.xls; do 
  [[ $(date -d "${f:6:8}" +%s) -ge $(date -d "$from" +%s) ]] &&
  [[ $(date -d "${f:6:8}" +%s) -le $(date -d "$to" +%s) ]] &&
  echo "$f in range" || # Here your actions
  echo "$f not in range" 
done

Выход:

Meter_20200120100846.xls not in range
Meter_20200121100846.xls in range
Meter_20200122100846.xls in range
Meter_20200123100846.xls in range
Meter_20200124100846.xls in range
Meter_20200125100846.xls in range

решение2

Команда date — это то, что вам нужно

$ date -d 1/25/2020 +%Y%m%d
20200125

-d mm/dd/yyyy - передать команде входную дату.

+%Y%m%d - какой результат вы хотите получить.

  • %Y - год четырьмя цифрами
  • %m - месяц двумя цифрами
  • %d - число месяца двумя цифрами.

Связанный контент