LSPCI обнаруживает два 3D-дисплея vga

Я пришел к этому, если я вас правильно понял, и взяв за пример ответ @Kunasalanda:

This is using bash (or compatible shell) and GNU date. It would fall over on e.g. macOS (non-GNU date).

today=$(date -d $(date +'%Y-%m-%d') +%s)

while read i; do
  [[ -z "$i" ]] && continue
  date_format=$(echo "$i" | awk -F'.' -vOFS='-' '{print $3,$2,$1}')
  convert_date=$(date -d "$date_format" +%s)
  if [[ "$convert_date" -ge "$today" ]]; then
    expires=$(( ("$convert_date"- "$today")/86400 ))
    [[ ! "$expires" -gt 10 ]] && echo $i expires in $expires days
  fi
done < file

Выход:

14.08.2019 expires in 0 days
18.08.2019 expires in 4 days
20.08.2019 expires in 6 days

Игнорировать пустые строки

[[ -z "$i" ]] && continue

Отформатируйте от dd.mm.yyдо yyyy-mm-ddдля выполнения операций

date_format=$(echo "$i" | awk -F'.' -vOFS='-' '{print $3,$2,$1}')

Преобразование даты в секунды

convert_date=$(date -d "$date_format" +%s)

Выбирайте только те даты, которые старше сегодняшнего дня

if [[ "$convert_date" -ge "$today" ]]; then

Получить количество дней, в течение которых истечет указанная дата

expires=$(( ("$convert_date"- "$today")/86400 ))

Вывод, только если срок действия не превышает 10 дней

[[ ! "$expires" -gt 10 ]] && echo "$i" expires in "$expires" days
0
16.09.2021, 13:57
0 ответов

Теги

Похожие вопросы