У меня есть файл, который содержит полный путь к имени файла (разделенный пробелами) и последний столбец, в который я поместил дату изменения файла в эпоху.
/data/owncloud/c/files/Walkthrough 2019/#25 SEC-C03/Group Enterprise.jpg 1569314988
Я хочу удалить все разделенные пробеламифайлы с номером эпохи меньше 1568187717.
На данный момент сценарий выглядит следующим образом, но это, если с разделением пробелов не может работать: (
#!/bin/bash
IFS=$'\n'
while read i
do printf "%s " "$i"
stat --format=%Z $i
done < <(find /data/owncloud/*/files -type f) > filelistwithchangeddate
filetodelete=expr `date +'%s'` - 2592000
awk '{print $(NF)}'
имеет последний номер столбца, так что каким-то образом нужно сравнить вывод awk с файловым декодером и удалить файлы, разделенные пробелами.
Обновление: Примерно так, как и должно быть:
for i in `cat filelistwithchangeddate `
do
if [ $(awk '{print $(NF)}' $i) -lt $filetodelete ]
then
echo "this will be deleted:"
awk '{$NF=""}1' $i
fi
done
Но нужно как-то исправить пробелы и запустить delete