Переименование пронумерованных файлов с сохранением текста

Для подсчета времени важны тики процессора и тики, потраченные процессом на процессор. Если вы говорите о времени, которое процесс тратит на процессор, вы должны суммировать тики при работе в режиме пользователя и ядра.

1
11.01.2020, 01:02
2 ответа

Если вы хотите переименовать только определенный набор файлов, простое решение — передать только эти файлы в rename. Итак, вместо использования *binиспользуйте раскрытие скобок , чтобы подобрать только файлы с правильными именами :

.
rename -n 's/frame(\d+)_/sprintf("%05d", $1)/e'  frame{100..199}_simobject0.bin
2
27.01.2020, 23:22

$&— это вся совпавшая строка -, включая начальную frameи конечную _. Поскольку это числовое значение, отличное от -, попытка отформатировать его в соответствии с %05dне удалась.

Вероятно, вы хотите что-то вродеs/frame(1\d{2})_/sprintf("frame%05d_", $1)/e

напр.

$ rename -n 's/frame(1\d{2})_/sprintf("frame%05d_", $1)/e' *.bin
rename(frame198_simobject0.bin, frame00198_simobject0.bin)
rename(frame199_simobject0.bin, frame00199_simobject0.bin)

Обратите внимание, что скобки [...]вокруг \dне нужны.

2
27.01.2020, 23:22

Теги

Похожие вопросы