Если имена файлов отсортированы правильно (то есть все они имеют формат yyyy-mm-dd.csv
), вы можете сделать что-то вроде:
mutt -s "$(date -d 'now' +%Y_week%V)" -a $(find /var/log/app/ -maxdepth 1 -name \*\.csv | sort -r | sed '1d') -- example@example.com
Это позволит отсортировать имена файлов с самыми последними сверху, а вызов sed
отбрасывает верхнее. Это будет работать, только если вы уверены, что сегодняшний файл уже существует. Если это не так, вы пропустите вчерашний.
Если вам нужно, чтобы это работало, даже если сегодняшнего файла еще нет, вы можете сделать:
mutt -s "$(date -d 'now' +%Y_week%V)" -a $(find /var/log/app/ -maxdepth 1 -name \*\.csv | grep -v "$(date +%Y-%m-%d.csv)") -- example@example.com
Вам, конечно, нужно изменить вызов $(date +%Y-%m-%d.csv)
, чтобы сгенерировать имя файла, которое вы пытаетесь исключить, если оно находится в другом формате.