Перейменування декількох файлів, додавши рядок до початку


21

Близько 200 файлів у каталозі я хотів би додати рядок 1_до початку всіх імен файлів.

Наприклад, такі імена файлів DATASET_X_Y_Zмають бути результатом 1_DATASET_X_Y_Z.

Я нічого не знаю про сценарії Shell, але, можливо, є один вкладиш для терміналу.



Посилання @Rinzwind стосується іншого питання. Питання Macydanim полягає в тому, щоб придумати рядки до імен файлів, а не для вмісту файлів.
jc

Відповіді:


38
  • rename 's/^/1_/' * для перейменування всіх файлів у поточному каталозі

або

  • rename 's/^/1_/' DATASET*для перейменування всіх файлів у поточному каталозі, починаючи з DATASETїх імені

Пояснення: вираз s/^/1_/ говорить: "замініть початок імені файлу (це означає, що цей символ -> ^)" на 1_".


Якщо ви renameцього не зробите з поля, вам потрібно встановити prename(перейменувати PERL).
user1359

14

Ви можете легко перейменувати всі файли в поточному введенні каталогу (якщо ви використовуєте bash):

for i in *; do mv "$i" 1_"$i"; done

очевидно, сприйміть це обережно; він переробить ВСІ файли в поточній папці, які є "видимими" (ім'я файлу не починається з ".")


Це перше знайдене нами правильне рішення, яке можна використовувати для додавання чогось подібного .csvдо підмножини файлів зі зміненим виразом підстановки замість *. +1
Зельфір Кальтшталь

Оце Так! Петлі на CLI! Це нове. :)
Raymond Wachaga

9

Можна використовувати pyRenamer . Його можна знайти в програмному центрі Ubuntu. введіть тут опис зображення Початковий шаблон файлу повинен бути {X}, а перейменований шаблон файлу повинен бути 1_ {1}


Одна з моїх улюблених програм
Аллан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.