Моя задача - ротация журналов, и я не могу найти команду, которая может найти какое-то число из имени файла с 1.
Например, у меня есть несколько файлов с именем: wrapper.log.1
, wrapper.log.2
.
Мне нужно переименовать и переместить эти файлы в другой каталог и получить wrapper_1.log
, wrapper_2.log
. После перемещения файла его следует удалить из исходного каталога.
Возможно, что в новой папке есть файлы с таким же именем.
Итак, я должен получить последний файл и плюс 1 к его имени файла, например wrapper_(2+1).log
.
Для всей моей задачи я нашел что-то вроде
find . -name "wrapper.log.*"
mkdir $(date '+ %d.%m.%y')
find . -name "wrapper.log.*" |sort -r |head -n1 | sed -E 's/(.log)(.[0-9])/_$(2+1)\1/'
Но, конечно, он не работает после второй строки.
И в будущем он должен быть в bash.
P.S: Также, я думаю, можно создать просто новый файл в новой папке с меткой времени или чем-то подобным в качестве постфикса.
Например:
folder file
01.01.19 wrapper_00_00_01
wrapper_00_01_07
wrapper_01_10_53
wrapper_13_07_11
02.01.19
wrapper_01_00_01
wrapper_03_01_07
wrapper_05_10_53
wrapper_13_07_11