Mengganti nama beberapa file dengan menambahkan string ke awal


21

Untuk sekitar 200 file dalam direktori saya ingin menambahkan String 1_ke awal semua nama file.

Nama file, misalnya, DATASET_X_Y_Zdan hasilnya harus 1_DATASET_X_Y_Z.

Saya tidak tahu apa-apa tentang scripting Shell, tapi mungkin ada satu liner untuk terminal.



Tautan @Rinzwind adalah tentang pertanyaan yang berbeda. Pertanyaan Macydanim adalah tentang menambahkan string ke nama file, bukan untuk mengajukan konten.
jc

Jawaban:


38
  • rename 's/^/1_/' * untuk mengganti nama semua file di direktori saat ini

atau

  • rename 's/^/1_/' DATASET*untuk mengganti nama semua file dalam direktori saat ini dimulai dengan DATASETnamanya

Penjelasan: ungkapan s/^/1_/mengatakan: "ganti awal nama file (yang berarti simbol ini -> ^) 'dengan 1_".


Jika Anda renametidak melakukan ini di luar kotak, Anda perlu menginstal prename(PERL mengganti nama).
user1359

14

Anda dapat dengan mudah mengganti nama semua file dalam pengetikan direktori saat ini (dengan asumsi Anda menggunakan bash):

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

jelas menerimanya dengan hati-hati; itu akan menghapus SEMUA file di direktori saat ini yang 'terlihat' (nama file tidak dimulai dengan '.')


Ini adalah solusi pertama yang benar yang saya temukan, yang dapat digunakan untuk menambahkan sesuatu seperti .csvke subset file, dengan ekspresi wild card yang diubah sebagai ganti *. +1
Zelphir Kaltstahl

Wow! Loop di CLI! Ini baru. :)
Raymond Wachaga

9

Anda bisa menggunakan pyRenamer . Itu dapat ditemukan di pusat perangkat lunak Ubuntu. masukkan deskripsi gambar di sini Pola file asli harus {X} dan pola file yang diubah namanya harus 1_ {1}


Salah satu program favorit saya
Allan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.