Попробуйте это:
#!/bin/bash
ls -r | while read fn; do
date=`echo $fn | sed -e 's/^file_\([0-9]*\)\.csv$/\1/'` || continue
if [ $date -lt $1 ]; then
echo $fn
exit
fi
done
Просто назовите этот скрипт с контрольной датой, с которой вы хотите сравнить. Замените -lt
на -le
, если вы хотите включить контрольную дату.
Редактировать: альтернативное решение, без передачи передаваемой переменной. Обратите внимание, что я не тестировал его, но он тоже должен работать.
#!/bin/bash
ls -r | sed -e 's/^file_\([0-9]*\)\.csv$/\1/' | while read date; do
if [ $date -lt $1 ]; then
echo "file_${date}.csv"
exit
fi
done