Скрипт для сравнения «размер файла» с «фамилией файла», и если непревзойденное удаление файла

В моей среде мы будем получать файлы от клиентов на наш сервер Sftp. Sftp обрабатывает файлы и перемещает их на другой инструмент, добавляя размер файла в конце имени файла. Например, samplefile.20150706 размером 1024 будет создан в качестве samplefile.20150706.1024 .

Если размер файла и имя (последняя часть после . ) Совпадают, наш инструмент выберет файл и отправит его в ETL. Если файл остается в этом месте более часа (не обрабатывается из-за непревзойденного размера и имени), инструмент отправит нам оповещения, так как файлы превышают один час.

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

Получить размер файла :

 size="$(stat --printf="%s" "$path")" 

Получить путь без последнего расширения :

 path_without_extension="${path%.*}" 

Сравните два:

 [ "${path_without_extension}.${size}" = "$path" ] 

ls -l | awk '{print $5}' ls -l | awk '{print $5}' дает размер вашего файла
echo file_name | awk -F"." '{print $3}' echo file_name | awk -F"." '{print $3}' дает вам размер файла, извлеченный из имени.

a=`ls -l | awk '{print $5}'` b=`echo file_name | awk -F"." '{print $3}'` if [ $a -eq $b ] then echo "you can do your processing here" fi