Почему моя переменная bash не расширяется при использовании в этом назначении переменной?

Используйте mvс Расширение скобки внутри контура.

for N in {1..100}; do
     mv {,new_}file$N.txt
done

Перед запуском команды mvоболочка расширит ее до такой команды для каждого файла, где $Nзаменит соответствующий порядковый номер.

mv file$N.txt new_file$N.txt

, поэтому к имени файла добавляется префикс .

-121 ---124642 ​​-

Попробуйте brename (https://github.com/shenwei356/brename), практичный межплатформенный -командный инструмент -линейный инструмент для безопасного пакетного переименования файлов/каталогов с помощью регулярных выражений (, поддерживающий Windows, Linux и OS X ).

@patrickDurusau сказал:

Linux has a variety of batch file renaming options but I didn’t see any short-comings in brename that jumped out at me.

Характеристики:

  • Крестовина -платформа . Поддержка Windows, Mac OS X и Linux.
  • Сейф . Путемпроверки потенциальных конфликтов и ошибок .
  • Фильтрация файлов . Поддержка включения и исключения файлов с помощью регулярных выражений. Нет необходимости запускать такие команды, как find./ -name "*.html" -exec CMD.
  • Переименование подсовпадения с соответствующим значением через ключ -файл значений .
  • Переименование по возрастанию целого числа .
  • Рекурсивное переименование файлов и каталогов .
  • Поддержка пробного хода .
  • Цветной вывод .

Команда:

$ brename -f.png -p image
[INFO] checking: [ ok ] 'image0001.png' -> '0001.png'
[INFO] checking: [ ok ] 'image0002.png' -> '0002.png'
[INFO] checking: [ ok ] 'image0003.png' -> '0003.png'
[INFO] 3 path(s) to be renamed
[INFO] renamed: 'image0001.png' -> '0001.png'
[INFO] renamed: 'image0002.png' -> '0002.png'
[INFO] renamed: 'image0003.png' -> '0003.png'
[INFO] 3 path(s) renamed

0
27.07.2021, 16:38
0 ответов

Теги

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