Saya memiliki direktori yang berisi file gambar bernomor, sesuatu seperti ini:
01.png
02.png
03.png
03.svg
04.png
05.png
06.jpg
07.png
08.png
09.png
09.svg
10.png
Kadang-kadang mungkin ada beberapa versi dari file dalam format yang berbeda (misalnya. A png
dan svg
versi 03
dan 09
file di atas) tetapi jumlahnya sebaliknya berturut-turut. Biasanya ada 40-80 file seperti itu di setiap direktori. Angka-angka sesuai dengan urutan gambar-gambar ini muncul dalam naskah (dokumen Word, tapi itu tidak penting). Tidak ada cara lain untuk menentukan urutan gambar.
Jika saya menambahkan gambar baru ke naskah saya perlu menempatkan salinan gambar di direktori ini dengan penomoran yang benar. Jadi jika gambar baru adalah yang kelima dalam naskah saya perlu mengganti nama file dalam direktori ini untuk membuat ruang untuk itu:
01.png
02.png
03.png
03.svg
04.png
06.png
07.jpg
08.png
09.png
10.png
10.svg
11.png
Apa cara yang paling mudah dari baris perintah, atau dari skrip atau makro untuk memberi nomor baru semua file mulai dari nomor tertentu? Saya memiliki instalasi Fedora Linux standar menggunakan bash.
Ini akan lebih mudah di zsh, tempat Anda dapat menggunakannya
On
kualifikasi glob untuk pertandingan semacam dalam urutan menurun (dann
menggunakan nomor urut, dalam kasus nama file tidak semua memiliki nol dengan lebar yang sama terkemuka);(l:WIDTH::FILLER:)
bendera ekspansi parameter untuk pad semua nomor dengan lebar yang sama (lebar jumlah yang lebih besar).Di bash, berikut ini skrip yang mengasumsikan file berlapis ke lebar tetap (jika tidak, skrip tidak akan mengganti nama file yang tepat) dan bantalan ke lebar tetap (yang harus ditentukan).
sumber
Masalah persis ini tercakup dalam artikel ini . Perhatikan bahwa Anda harus memodifikasinya untuk mendukung format SVG dan PNG, dengan menambahkan langkah MV kedua.
sumber
Lebih mudah:
Anda akan mendapatkan:
sumber
Tampaknya tidak ada banyak minat baru-baru ini dalam pertanyaan ini tetapi, jika seseorang menemukan itu, ada tiga masalah di sini. Salah satunya adalah bagaimana memilih file untuk diganti nama berdasarkan kriteria semantik (kisaran tidak leksikal dan tidak dapat ditentukan oleh wildcard atau bahkan ekspresi reguler - teori automata mengatakan bahwa ini lebih kompleks daripada NFA). Yang kedua adalah bagaimana mengubah nama dengan memodifikasi sebagian dari itu. Yang ketiga adalah bagaimana menghindari tabrakan nama. Sebuah skrip dalam Bash dan banyak bahasa lain dapat melakukan transformasi khusus ini, tetapi kebanyakan dari kita lebih suka tidak harus menulis sebuah program setiap kali kita ingin mengganti nama banyak file. Dengan rene.py (gratis dan open source) saya, Anda dapat melakukan apa yang Anda inginkan tetapi dibutuhkan dua doa untuk menghindari masalah nama tabrakan. Pertama
rene ?.*/#7-80 %?.* B
menambah semua nama dalam rentang, menambahkan awalan% untuk menghindari nama yang ada. Kemudianrene %* *
hapus awalan ini dari file-file yang memilikinya. Saya jelaskan ini di https://sourceforge.net/p/rene-file-renamer/discussion/examples/thread/f0fe8aa63c/sumber