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

[115731] С инструментами GNU:

bcdedit /set {current} bootstatuspolicy ignoreallfailures

Это ищет последнее время модификации файлов. Если резервное копирование было начато в четверг, но не было завершено до утра пятницы, то последнее время модификации будет в пятницу.

bcdedit /set {default} bootstatuspolicy ignoreallfailures

Если дата резервного копирования указана в имени файла как [116077] backup-2014-04-06.dump[116078], вы сделаете:

1
19.09.2014, 08:45
5 ответов

Если переименовать доступно, используйте эту команду:

rename 's/a_LT/LT_A/' *

Другой подход с awk :

find -type f | awk -F'a_LT' '{printf "mv \"%s\" \"%sLT_A%s\"\n", $0, $1, $2}' | bash
2
27.01.2020, 23:13

Используя bash:

for file in *; do [[ -f "$file" ]] && mv "$file" "${file/a_LT/LT_A}"; done
data_LT_A.coo
data_LT_A.ec
data_LT_A.fits
data_LT_A.grp
3
27.01.2020, 23:13

Я привык использовать xargs:

ls -1 | sed 's/\(\(.*\)a_LT\(.*\)\)/\1 \2LT_A\3/' | xargs -n 2 mv
2
27.01.2020, 23:13

переименование может не работать должным образом в системах на базе CentOS. В этом случае вы можете загрузить этот скрипт и скопировать его на свой компьютер как $ HOME / bin / rename.pl.

rename.pl 's/a_LT/LT_A/g' * -vn

теперь будет работать, как ожидалось ..

Лучше запустить

rename.pl -n 's/a_LT/LT_A/g' *

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

0
27.01.2020, 23:13

Я сделал следующее, и это сработало.

rename 's/a_LT/LT_A/g' *

Один лайнер, краткий и легко запоминающийся.

0
27.01.2020, 23:13

Теги

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