Saya agak baru dalam pemrograman secara umum dan saya tidak yakin bagaimana cara menyelesaikan tugas ini di skrip bash saya.
Latar belakang singkat: ketika mengimpor perpustakaan musik saya (sebelumnya diselenggarakan oleh iTunes) ke Banshee, semua file diduplikasi agar sesuai dengan gaya nomor Banshee (misal: 02. bukannya 02 ) selain itu, iTunes rupanya tidak menyimpan ID3 tag ke file, banyak di antaranya yang kosong. Jadi sekarang saya punya beberapa ribu tag untuk diperbaiki dan file duplikat untuk dihilangkan.
Untuk mengotomatiskan prosesnya, saya mulai belajar menulis skrip bash. Saya membuat skrip (yang dapat Anda lihat di sini) yang melakukan empat hal: menghapus file iTunes yang tidak perlu, mengambil masukan dari pengguna tentang informasi Tag ID3 dan menyimpannya dalam variabel, menghapus semua info tag yang ada dari semua file, menulis tag baru dengan info yang diambil dari pengguna, menggunakan program yang disebut eyeD3.
Sekarang, di sinilah saya mengalami masalah saya. Skrip ini pada dasarnya menulis info secara membabi buta ke semua file mp3 di direktori. Ini bagus untuk tag yang memiliki kesamaan semua file - seperti artis, album, total lagu, tahun, dll. Tapi saya tidak bisa menandai setiap nomor trek dengan metode ini. Jadi saya masih mengedit tag track# satu per satu, secara manual. Dan itu adalah sesuatu yang saya benar-benar tidak ingin melakukannya 2.000+ kali.
Semua nama file terlihat seperti ini:
01. song1.mp3
02. song2.mp3
03. song3.mp3
Perintah untuk menulis nomor trek ke sebuah tag terlihat seperti ini:
$ eyeD3 -n 1 "01. song1.mpg"
Jadi... Saya tidak yakin bagaimana cara mengotomatiskannya. Saya perlu mengambil dua digit pertama dari setiap nama file, menyimpannya di suatu tempat, lalu mengingat masing-masing digit tersebut ke dalam perintah eyeD3 terpisah.