Ini ialah arahan mp3info2p yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
mp3info2 - dapatkan/setkan tag MP3; menggunakan MP3::Tag untuk mendapatkan nilai lalai.
SINOPSIS
# Cetak maklumat dalam tag dan maklumat autodeduced
mp3info2 *.mp3
# Selain itu, tetapkan medan tahun kepada 1981
mp3info2 -y 1981 *.mp3
# Sama tanpa cetakan maklumat, secara rekursif dalam direktori semasa
mp3info2 -R -p "" -y 1981 .
# Jangan simpulkan sebarang medan, cetak (dinormalkan) maklumat daripada tag sahaja
mp3info2 -C autoinfo=ID3v2,ID3v1 *.mp3
# Seperti di atas, tetapi tanpa normalisasi/autofill, maklumat mentah dalam teg
mp3info2 -N *.mp3
# Seperti di atas, tetapi hanya dengan teg ID2v1 dibaca
mp3info2 -NC autoinfo=ID3v1 *.mp3
# Dapatkan artis dari CDDB_File, autodeduce maklumat lain, tulis pada tag
mp3info2 -C artist=CDDB_File -u *.mp3
# Untuk tajuk, pilih maklumat daripada fail .inf; autodeduce rehat, kemas kini
mp3info2 -C title=Inf,ID3v2,ID3v1,nama fail -u *.mp3
# Sama, dan dapatkan artis dari fail CDDB
mp3info2 -C title=Inf,ID3v2,ID3v1,nama fail -C artist=CDDB_File -u *.mp3
# Tulis skrip untuk penukaran .wav kepada .mp3, teg autodeducing
mp3info2 -p "lame -h --vbr-new --tt '%t' --tn %n --ta '%a' --tc '%c' --tl '%l' --ty '% y' '%f'\n" *.wav >xxx.sh
DESCRIPTION
Program ini mencetak mesej meringkaskan maklumat tag (diperolehi melalui modul MP3:: Tag) untuk
fail yang ditentukan.
Ia juga mungkin mengemas kini maklumat dalam tag ID3. Ini berlaku dalam tiga kes yang berbeza.
· Jika maklumat yang dibekalkan dalam pilihan baris arahan "talygcn" berbeza daripada
kandungan teg ID3 yang sepadan (atau tiada teg ID3 yang sepadan).
· Jika pilihan "-d" atau "-F" diberikan.
· jika "MP3::Tag" memperoleh maklumat daripada cara lain selain daripada tag MP3, dan "-u" memaksa
kemas kini tag ID3.
(Semua cara ini dilumpuhkan oleh pilihan "-D".) Teg ID3v2 ditulis jika perlu, atau jika "-2"
pilihan diberi. (Pengisian automatik medan boleh deduksi (melalui kaedah
id3v2_frames_autofill()) dilakukan melainkan pilihan "-d" atau "-N" diberikan.)
Pilihan "-u" menulis ("u"pdates) maklumat yang diambil ke tag MP3 ID3. ini
pilihan diandaikan jika terdapat pilihan baris perintah yang secara eksplisit menetapkan elemen tag
("-a", "-t" dsb., dan "-F", "-d"). (Kesan pilihan ini mungkin ditindih dengan memberi
Pilihan "-D".) Jika pilihan "-2" juga diberikan, paksa menulis teg ID3v2 walaupun maklumat itu
sesuai dengan teg ID3v1 (selain itu, pilihan ini membolehkan kemas kini automatik "nama peribadi"
medan dan tajuk yang sepadan mengikut nilai "translate_person",
tetapan konfigurasi "person_frames" dsb; lihat "Penormalan medan"). Pilihan ini
diabaikan jika tiada perubahan pada tag dikesan; walau bagaimanapun, seseorang boleh memaksa kemas kini dengan mengulangi
pilihan ini (berguna jika anda mengharapkan perubahan "format" teg, berbanding dengannya
"kandungan").
Pilihan "-p" mencetak mesej menggunakan argumen seterusnya sebagai format (secara lalai "\\", "\t",
"\n" digantikan dengan garis miring ke belakang, tab dan baris baharu; dikawal oleh nilai pilihan "-E");
lihat "interpolate" dalam MP3::Tag untuk butiran format pecut ()-seperti melarikan diri. Jika tidak
pilihan "-p" diberikan, mesej dalam format lalai akan dipancarkan. Nilai pilihan "-e"
ialah pengekodan yang digunakan untuk output; jika nilainya ialah nombor, pengekodan khusus sistem ialah
meneka (dan digunakan untuk output jika bit 0x1 ditetapkan); jika bit 0x2 ditetapkan, maka, baris arahan
pilihan diandaikan dalam pengekodan yang diteka; jika bit 0x4 ditetapkan, maka, baris arahan
hujah diandaikan berada dalam pengekodan yang diteka. Gunakan nilai "binari" untuk melakukan binari
output.
Dengan pilihan "-D" (lari kering) tiada kemas kini dilakukan, tidak kira apa pilihan lain.
Dengan pilihan ini, tiada penghuraian teg dilakukan melainkan diperlukan.
Gunakan pilihan
talygcn
untuk menulis ganti maklumat (nombor lagu genre komen tahun artis tajuk album) yang diperolehi
melalui heuristik "MP3::Tag" (suis "-u" tersirat jika mana-mana satu daripada hujah ini berbeza
daripada apa yang akan didapati sebaliknya; gunakan suis "-D" untuk melumpuhkan kemas kini automatik). Secara lalai,
nilai pilihan ini tidak "%"-diinterpolasi; ini boleh ditukar dengan pilihan "-E".
Pilihan "-d" harus mengandungi senarai bingkai ID3v2 yang dipisahkan koma untuk dipadamkan. A
spesifikasi bingkai adalah sama seperti yang mungkin diberikan kepada interpolasi bingkai "%{...}".
perintah, cth, "TIT3", "COMM03", "COMM(fra)[tajuk pendek]"; perbezaan dengan ubah suai-
akses adalah itu SEMUA (dan bukan pertama daripada) bingkai yang sepadan dipadamkan. (Pilihan -d mungkin
berulang.)
Contohnya, "-d APIC" akan mengalih keluar semua bingkai gambar. Di samping itu, jika senarai mengandungi
"ID3v1" atau "ID3v2", keseluruhan teg akan dipadamkan.
Begitu juga, pilihan "-F" membenarkan tetapan bingkai "ID3v2" sewenang-wenangnya: jika seseorang perlu menetapkan
satu bingkai, gunakan arahan "FRAME_spec=VALUE":
-F TIT2=Tajuk_baru_
Sekali lagi, semasa mengubah suai, SEMUA bingkai yang sepadan dipadamkan dahulu, jadi berhati-hatilah
-F COMM=Komen Saya
Pilihan "-F" boleh diulang untuk menetapkan lebih daripada satu bingkai. Jika pembolehubah konfigurasi
"empty-F-deletes" adalah BENAR (lalai), argumen kosong akan memadamkan bingkai.
Seseorang boleh menggantikan "FRAME_spec=VALUE" dengan "FRAME_spec < FILE"; dalam kes ini nilai untuk ditetapkan
dibaca daripada fail bernama FAIL; jika bingkai adalah teks sahaja (maksud: paling banyak
Medan "[encoded]Teks URL Language Description" ada), fail dibaca dalam teks
mod (dan dengan permulaan/mengekor ruang putih dilucutkan), jika tidak, ia dibaca dalam binari
mod. (Ruang putih diperlukan tentang tanda "<".) Jika "<" digantikan dengan "?<",
nilai ditetapkan hanya jika bingkai belum ada, dan jika fail wujud; jika digantikan dengan ">",
nilai (jika ada) ditulis kepada FAIL (penciptaan direktori perantaraan ialah
dikawal oleh pilihan konfigurasi "frames_write_creates_dirs", lalainya adalah FALSE).
Selain itu, "FRAME_spec" mungkin salah satu daripada "ID3v1" atau "ID3v2" atau "TAGS"; dalam kes ini, keseluruhan
tag ditulis atau dibaca. Contohnya, untuk "TAG < FILE", "genre tahun album artis tajuk
runut komen" maklumat dikira daripada FAIL, yang mungkin merupakan tag mentah, seperti yang dihasilkan dengan ">",
atau fail MP3 yang sah; jika Imej::ExifTool ada, data boleh dibaca secara sewenang-wenangnya
fail multimedia. (Begitu juga, untuk "ID3v1 < FILE", maklumat yang sama diekstrak daripada "ID3v1"
tag sahaja.) Selepas ini, dalam kes "ID3v2" atau "TAGS", bingkai "ID3v2" disalin daripada
Teg "ID3v2" satu demi satu. (Dengan pengubahsuaian yang sesuai untuk "?<".)
Secara lalai, "VALUE" untuk "-F" ialah "%"-diinterpolasi; ini boleh ditukar dengan pilihan "-E".
Untuk kemudahan pengguna, bentuk yang lebih mesra manusia "komposer, text_by, orkestra, konduktor,
disk_n" boleh digunakan dan bukannya "TCOM, TEXT, TPE2, TPE3, TPOS".
Pilihan "-P RECIPE" ialah generalisasi yang sangat berkuasa tentang perkara yang boleh dilakukan oleh pilihan
"-F", "-d", dan "-t -a -l -y -g -c -n". Ia mungkin berulang; nilai harus mengandungi
mengupas resipi. Ia menjadi item konfigurasi "parse_data" daripada "MP3::Tag"; akhirnya
maklumat ini diproses oleh modul MP3::Tag::ParseData (jika yang terakhir terdapat dalam
rantaian heuristik; lihat pilihan "-C"). "RESEPI" dibahagikan kepada "$flags, $string,
@patterns" pada aksara bukan abjad angka pertamanya; yang pertama daripada @patterns yang sepadan
$string akan dilaksanakan (untuk kesan sampingan). (Lihat contoh: "CONTOH: parse
peraturan".)
Jika pilihan "-G" ditentukan, nama fail pada baris arahan dianggap sebagai glob
corak. Ini mungkin berguna jika panjang baris perintah maksimum terlalu rendah. Dengan
pilihan "-R" argumen boleh menjadi direktori, yang dicari secara rekursif untuk audio
(lalai * .mp3) fail untuk diproses; gunakan pilihan "-r" untuk menetapkan semula ungkapan biasa untuk dilihat
untuk (lalai ialah "(?i:\.mp3$)").
Pilihan "-E" mengawal pengembangan aksara melarikan diri. Ia harus mengandungi huruf
pilihan baris arahan di mana "\\, \n, \t" diinterpolasi; seseorang boleh menambah huruf
daripada pilihan "talygcn F" yang memerlukan "%"-interpolasi selepas pemisah "/i:" (untuk
"-F", hanya nilai yang diinterpolasi). Nilai lalai ialah "p/i:Fp": hanya "-p" sahaja
"\"-interpolasi, dan hanya "-F" dan "-p" tertakluk kepada "%"-interpolasi. Jika semua satu
mahu ialah menambah kepada lalai, mendahului nilai "-E" (mengandungi pilihan tambahan) dengan
"+". (Beberapa bahagian nilai pilihan "-P" diinterpolasi, tetapi ini sepatutnya
dikawal oleh bendera, bukan "-E"; buat TIDAK letakkan "P" ke dalam bahagian "%" -interpolasi "-E".)
Jika pilihan "-@" diberikan, semua aksara "@" dalam pilihan digantikan dengan "%". ini
mungkin mudah jika cangkerang merawat "%" khas (cth, cangkerang DOSISH).
Jika pilihan "-I" diberikan, tiada tekaan untuk artis medan dilakukan pada taip.
Pilihan "-C CONFIG_OPT=VALUE1,VALUE2..." menetapkan data konfigurasi "MP3::Tag" sama
cara sebagai "MP3::Tag-"konfigurasi()> akan lakukan (ingat bahawa nilai adalah tatasusunan; elemen berasingan
dengan koma jika lebih daripada satu). Pilihan mungkin diulang untuk menetapkan lebih daripada satu nilai. Nota
memandangkan "ParseData" digunakan untuk memproses resipi parse "-P", ia harus disimpan dengan lebih baik
dalam konfigurasi "autoinfo" (dan medan berkaitan "pengarang" dll) dengan kehadiran "-P".
Jika pilihan "-x" diberikan, maklumat teknikal mengenai fail audio akan dicetak
(Tahap MP3, tempoh, bilangan bingkai, padding, hak cipta dan senarai bingkai ID3v2
nama dalam format yang sesuai untuk "%{...}" melarikan diri). Jika "-x" diulang, kandungan bingkai adalah
juga dicetak (boleh mengeluarkan aksara tidak boleh dicetak, jika ia diulang lebih daripada dua kali).
Jika pilihan "-N" diberikan, semua "pintar" dinyahdayakan - tiada penormalan medan
berlaku, dan (secara lalai) tiada percubaan untuk menyimpulkan nilai medan daripada bukan ID3
maklumat dilakukan. Pilihan ini (pada masa ini) bersamaan dengan mempunyai "-C
autoinfo=ParseData,ID3v2,ID3v1" sebagai arahan pertama, untuk tidak mempunyai
Normalize::Teks::Music_Fields.pm hadir pada laluan @INC, dan tidak memanggil autofill() kaedah.
Normalisasi of bidang
(Pemuatan modul normalisasi dan semua operasi berikutnya mungkin dilumpuhkan oleh
pilihan "-N", atau dengan menetapkan pembolehubah persekitaran "MP3TAG_NORMALIZE_FIELDS" kepada FALSE.
Jika tidak dilarang, modul cuba dimuatkan jika direktori ~/.music_fields is
hadir atau "MP3TAG_NORMALIZE_FIELDS" ditetapkan dan BENAR.)
Jika memuatkan modul "Normalize::Teks::Music_Fields" berjaya, perkara berikut ialah
terpakai:
Jika nilai "MP3TAG_NORMALIZE_FIELDS" ditakrifkan dan bukan 1, nilai ini dipecahkan kepada
direktori sebagai PATH, dan laluan muat "Normalize::Text::Music_Fields" ditetapkan sebagai ini
senarai direktori. Kemudian MP3::Tag diarahkan (melalui konfigurasi yang sepadan
tetapan) untuk menggunakan kaedah "normalize_artist" (dsb.) yang ditakrifkan oleh modul ini. Kaedah-kaedah ini
boleh menormalkan data teg tertentu. Versi semasa mentakrifkan kaedah untuk "normalisasi"
nama peribadi, dan gelaran (berdasarkan komposer). Normalisasi ini didorong
melalui jadual konfigurasi boleh disunting pengguna.
Sebagai tambahan kepada normalisasi automatik data tag MP3, seseorang boleh menggunakan "fail MP3 palsu" untuk
mengakses beberapa ciri modul ini secara manual. Untuk ini, gunakan nama fail kosong dan "-D"
pilihan. Cth,
mp3info2 -D -a beethoven -p "%a\n" ""
mp3info2 -D -a beethoven -p "%{shP[%a]}\n" ""
mp3info2 -D -a beethoven -t "sonata #28" -p "%t\n" ""
mp3info2 -D -a beethoven -t "allegretto, Bes" -@p "@t\n" ""
mp3info2 -D -a beethoven -t "op93" -@p "@t\n" ""
akan mencetak nama orang ternormal untuk "beethoven", pendek ternormal yang sepadan
nama orang, dan tajuk biasa untuk "sonata #28" komposer "beethoven". Cth,
dengan jadual normalisasi yang dihantar, ia akan dicetak
Ludwig van Beethoven (1770-1827)
L. van Beethoven
Piano Sonata No. 28 dalam A major; Op. 101 (1816)
Allegretto untuk Piano Trio dalam B flat major; Woo 39 (1812)
Simfoni No. 8 dalam F major; Op. 93 (comp. 1812, fp Vienna, 1814-02-27, cond. Beethoven; pub. 1816)
. bagi of operasi
Pada masa ini, operasi dilakukan dalam susunan berikut
· Pemadaman ID3v1 atau ID3v2 secara keseluruhan melalui pilihan "-d";
· Penerimaan pilihan "-P" disediakan (untuk dicetuskan oleh interpolasi);
· Tetapan dilakukan melalui pilihan "-a/-t/-l/-y/-g/-c/-n";
· Tetapan dilakukan melalui pilihan "-F";
· Pemadaman bingkai individu melalui pilihan "-d";
· autolengkap bingkai ID3v2 (id);
· Pancarkan maklumat berdasarkan pilihan "-p" dan "-x";
· Pencetus penerima "-P" (jika tidak dicetuskan oleh interpolasi);
· Kemas kini tag jika perlu.
Penggunaan strategi: peningkatan of kerumitan
Tujuan skrip ini adalah untuk memudahkan pengendalian tag ID3 as mungkin.
Pada satu hujung skala, seseorang boleh melakukan manipulasi kompleks sewenang-wenangnya dengan menggunakan tag
Modul Perl "MP3::Tag".
Sebaliknya, adalah lebih mudah untuk mengendalikan manipulasi paling mudah dengan tag
menggunakan pilihan skrip ini "-t -a -l -y -g -c -n" dan "-p -F -d". Untuk lebih sedikit
tugas yang rumit, seseorang mungkin perlu menggunakan kaedah yang lebih rumit menghurai peraturan, dengan syarat
ke skrip ini dengan pilihan "-P"; peraturan sangat bergantung pada interpolasi, Lihat
"interpolate" dalam MP3::Tag, "interpolate_with_flags" dalam MP3::Tag.
Untuk memudahkan peningkatan daripada "manipulasi paling mudah" kepada "manipulasi yang lebih terperinci", di sini kami
sediakan "peraturan parse" sinonim kepada pilihan yang paling mudah. Jadi jika anda mulakan dengan "-t -a -l -y
-g -c -n" dan "-p -F -d" pilihan yang "hampir berfungsi" untuk anda, anda mempunyai peluang yang baik untuk menjadi
dapat mencapai matlamat anda sepenuhnya dengan mengubah suai sinonim yang diterangkan di bawah.
(Di bawah ini kami menganggap bahawa pilihan "-E" ditetapkan kepada nilai lalainya, jadi "-F -p" adalah
"%"-diinterpolasi, pilihan lain tidak. Ambil perhatian juga bahawa jika pengekodan TTY anda adalah
diiktiraf oleh Perl, adalah sangat disyorkan untuk menetapkan pilihan "-e 3"; pada cengkerang DOSISH,
lebih baik gunakan "-@", dan gantikan "%" dengan "@" di bawah.)
"-t NILAI"
-P "mz/VALUE/%t"
"-a -l -y -g -c -n"
Begitu juga.
"-F" "TIT2=VALUE"
-P "mzi/VALUE/%{TIT2}"
"-F" "APIC[myDescr] < FAIL"
-F "APIC[myDescr]=%{I(fimbB)FILE}"
or
-P "mzi/%{I(fimbB)FILE}/%{APIC[myDescr]}"
(alih keluar "bB" untuk bingkai teks sahaja).
"-F" "APIC[myDescr] > FAIL"
-P "bOi,%{APIC[myDescr]},FAIL"
(alih keluar "b" untuk bingkai teks sahaja); atau gunakan "-e binary -p "%{APIC[myDescr]}""
dengan ubah hala, lihat "CONTOH: peraturan parse".
"-d" TIT2
-P "m//%{TIT2}"
"-F" "TIT2 ?< FAIL"
Sangat rumit. Ini tidak akan menetapkan membezakan fail kosong dan yang tidak wujud:
-P "mzi/%{TIT2:1}0%{I(fFim)FILE}/10/10%{TIT2}/0%{U1}"
(tambah "bB" pada "fFim" untuk bingkai bukan teks sahaja); bahagian terakhir boleh ditinggalkan
jika seseorang meninggalkan bendera "m" - ia hadir untuk menangkap salah cetak sahaja.
Untuk butiran tentang "peraturan hurai", lihat "CONTOH: peraturan hurai" dan "PENERANGAN" dalam
MP3::Tag::ParseData.
CONTOH: menghurai peraturan
Hanya pilihan "-P" yang cukup rumit untuk mendapat komen... Untuk butiran penuh tentang
menghurai peraturan, lihat "DESCRIPTION" dalam MP3::Tag::ParseData; untuk butiran penuh tentang interpolasi,
lihat "interpolate" dalam MP3::Tag, "interpolate_with_flags" dalam MP3::Tag.
Untuk contoh (mengarut), seseorang boleh menggantikan "-a Homer -t Iliad" dengan
-P mz=Homer=%a -P mz=Iliad=%t
Contoh yang kurang bodoh ialah memaksa cara tertentu untuk menghuraikan nama fail melalui
-P "im=%{d0}/%f=%a/%n %t.%e"
Ia dipecah masuk
corak rentetan bendera1
"im" "%{d0}/%f" "%a/%n %t.%e"
Huruf bendera adalah singkatan dari interpolasi, mesti sepadan. Ini menginterpolasi rentetan
"%{d0}/%f" dan menghuraikan hasilnya (iaitu nama fail dengan satu tahap direktori
bahagian yang dipelihara) menggunakan corak yang diberikan; dengan itu nama direktori menjadi artis, the
bahagian angka terkemuka - nombor trek, dan nama fail yang lain (tanpa sambungan)
- Tajuk. Ambil perhatian bahawa kerana berbilang corak dibenarkan, seseorang juga boleh membenarkannya
berbilang format nama, cth
-P "im=%{d0}/%f=%a/%n %t.%e=%a/%t (%y).%e"
membenarkan nama asas fail juga dalam bentuk "TAJUK (TAHUN)". Cara alternatif untuk
memperoleh keputusan yang sama ialah
-P "im=%{d0}=%a" -P "im=%f=%n %t.%e=%t (%y).%e"
yang sepadan dengan dua penerima:
corak rentetan bendera1 corak2
"im" "%{d0}" "%a"
"im" "%f" "%n %t.%e" "%t (%y).%e"
Sudah tentu, seseorang boleh menggunakannya
"im" "%B" "%n %t" "%t (%y)"
sebagai pengganti yang kedua.
Ambil perhatian bahawa ia mungkin lebih mudah dibaca untuk ditetapkan artis kepada "%{d0}" dengan tugasan yang jelas, dengan
hujah yang serupa dengan
-E "p/i:Fpa" -a "%{d0}"
(nilai "-E" ini meminta "%"-interpolasi pilihan "-a" sebagai tambahan kepada
lalai "\"-interpolasi "-p", dan "%"-interpolasi "-F" dan "-p"; satu boleh
pintasannya dengan "-E +/i:a").
Untuk memberikan lebih banyak contoh,
-P "if=%D/.comment=%c"
akan membaca ulasan daripada fail .komen dalam direktori fail audio;
-P "ifn=%D/.comment=%c"
mempunyai kesan yang sama jika fail .komen mempunyai ulasan satu baris, satu setiap trek (ini mengandaikan
nombor trek boleh didapati dengan cara lain).
Katakan bahawa fail Bahagian dalam direktori fail MP3 mempunyai format berikut: ia mempunyai a
mukadimah, kemudian mempunyai perenggan pendek maklumat bagi setiap fail audio, didahului oleh trek
nombor dan titik:
...
12. Rezitativ.
(Pizarro, Rocco)
13. Duet: jetzt, Alter, jetzt hat es Eile, (Pizarro, Rocco)
...
Perintah berikut meletakkan maklumat ini ke dalam tajuk tag ID3 (dengan syarat audio
nama fail cukup bermaklumat supaya MP3::Tag boleh menyimpulkan nombor trek):
mp3info2 -u -C parse_split='\n(?=\d+\.)' -P 'fl;Bahagian;%=n. %t'
Jika perenggan maklumat ini mempunyai bentuk "TAJUK (ULASAN)" dengan bahagian "ULASAN".
menjadi pilihan, kemudian gunakan
mp3info2 -u -C parse_split='\n(?=\d+\.)' -P 'fl;Bahagian;%=n. %t (%c);%=n. %t'
Jika anda ingin mengalih keluar titik atau koma di hujung tajuk, gunakan
mp3info2 -u -C parse_split='\n(?=\d+\.)' \
-P 'fl;Bahagian;%=n. %t (%c);%=n. %t' -P 'iR;%t;%t[.,]$'
Corak kedua doa ini ditukar kepada
['iR', '%t' => '%t[.,]$']
yang pada asasnya menggunakan penggantian "s/(.*)[.,]$/$1/s" pada tajuk.
Sekarang andaikan bahawa sebagai tambahan kepada Bahagian, kami mempunyai fail teks komen dengan maklumat tambahan;
kami ingin meletakkan maklumat ini di ruangan komen selepas apa yang diekstrak daripada "TAJUK
(ULASAN)"; pisahkan dua bahagian ulasan ini dengan baris kosong:
mp3info2 -EC -C 'parse_split=\n(?=\d+\.)' -C 'parse_join=\n\n' \
-P 'f;Ulasan;%c' -P 'fl;Bahagian;%=n. %t' \
-P 'i;%t///%c;%t (%c)///%c' -P 'iR;%t;%t[.,]$'
Ini mengandaikan bahawa tajuk dan ulasan tidak mengandungi '///' sebagai subrentetan.
Penjelasan: corak pertama "-P",
['f', 'Comment' => '%c'],
membaca ulasan daripada fail "Ulasan" ke dalam medan ulasan; yang kedua,
['fl', 'Parts' => '%=n. %t'],
membaca sebahagian daripada "Bahagian" ke dalam medan tajuk. Yang ketiga
['i', '%t///%c' => '%t (%c)///%c']
menyusun semula tajuk dan ulasan disediakan tajuknya adalah dalam bentuk "TAJUK (ULASAN)".
(Pilihan konfigurasi "parse_join" mengurus pemisahan dua bahagian ulasan
sepadan dengan dua kejadian %c di sebelah kanan.)
Akhirnya, pola keempat adalah sama seperti dalam contoh sebelumnya; ia menghilangkan palsu
tanda baca di hujung tajuk.
Lebih banyak contoh: mengalih keluar rentetan "dengan biola" dari permulaan medan ulasan (mengalih keluar
komen sama sekali jika tiada yang tinggal):
mp3info2 -u -P 'iz;%c;dengan biola%c' *.mp3
menetapkan medan artis tanpa membiarkan ciri kemas kini automatik menyimpulkan medan lain daripadanya
sumber lain;
mp3info2 -C autoinfo=ParseData -a "AU Thor" *.mp3
menetapkan medan ulasan melainkan ia sudah ada:
mp3info2 -u -P 'i;%c///dengan piano;///%c' *.mp3
Contoh terakhir menunjukkan bagaimana sebenarnya menulis "program" dalam bahasa "-P"
pilihan: contoh memberikan tugasan bersyarat. Dengan pembolehubah pengguna (seperti dalam "%{U8}")
untuk sementara, dan kemungkinan untuk menggunakan ungkapan biasa, seseorang boleh memberikan sewenang-wenangnya
logik terprogram. Sudah tentu, pada beberapa tahap kerumitan seseorang harus lebih baik beralih kepada
antara muka langsung dengan modul Perl "MP3::Tag" (gunakan kod skrip Perl ini sebagai
contoh!).
Berikut ialah tetapan tugas biasa bingkai id3v2 "lanjutan": komposer ("TCOM"), orkestra
("TPE2"), konduktor ("TPE3"). Kami menganggap pepohon direktori yang mengandungi fail MP3 yang ditandakan
dengan konvensyen berikut: "artis" sebenarnya adalah seorang komposer; "komen" adalah salah satu daripada
dua bentuk:
Penghibur; Orkestra; Konduktor
Orkestra; Konduktor
Untuk menetapkan bingkai MP3 tertentu melalui peraturan "-P", gunakan
mp3info2 -@P "mi/@a/@{TCOM}" \
-P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R .
Dengan pilihan "-F", ini boleh dipermudahkan sebagai
mp3info2 -@F "TCOM=@a" -P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R .
or
mp3info2 -@F "composer=@a" -P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R .
Untuk menyalin tag ID3 fail MP3 dalam direktori semasa ke fail dalam direktori /tmp/mp3 bersama
peluasan .tag (dan cetak "laporan kemajuan"), gunakan
mp3info2 -p "@N@E\n" -@P "bODi,@{ID3v2}@{ID3v1},/tmp/mp3/@N.tag" -DNR .
Memandangkan kami tidak menggunakan bendera "z", fail MP3 tanpa teg dilangkau.
Sekarang anggap bahawa terdapat dua hierarki fail selari bagi fail audio, dan lirik:
fail audio masuk audio/nama_dir/nama_audio.mp3 dengan fail lirik yang sepadan dalam
teks/nama_dir/nama_audio.mp3. Untuk melampirkan lirik pada fail MP3 (dalam bingkai "COMM" dengan
huraian "lirik" dalam bahasa "eng" - ini is a tidak standard lokasi, lihat di bawah!),
memanggil
mp3info2 -@P "fim;../text/@{d0}/@B.txt;@{COMM(eng)[lirik]}" -Ru .
di dalam direktori audio. (Tukar "fim" kepada "Ffim" untuk mengabaikan fail audio yang
fail teks yang sepadan tidak wujud.) (Sudah tentu, untuk mengikuti spesifikasi,
seseorang sepatutnya menggunakan medan "%{USLT(eng)[]}" dan bukannya "%{COMM(eng)[lirik]}"; lihat
di bawah untuk variasi).
Selesai dengan contoh yang sangat mudah: semua apa corak
-P 'i;%t;%t'
yang dilakukan ialah mengalih keluar tempat kosong mengekor dan mendahului daripada tajuk (yang disimpulkan oleh yang lain
bermakna).
Lagi contoh
Dengan pilihan "-F", seseorang boleh menetapkan bingkai "USLT" sebagai
mp3info2 -@F "USLT(eng)[] < ../text/@{d0}/@B.txt" -Ru .
Cetak bingkai sedemikian (dalam mana-mana bahasa) dengan
mp3info2 -@p "@{USLT[]}\n" fail.mp3
Begitu juga, untuk mencetak bingkai APIC dengan penerangan kosong, gunakan
mp3info2 -e binari -@p "@{APIC[]}" fail.mp3 > output_picture_file
atau (dengan keterangan "kulit")
mp3info2 -@P "bOi,@{APIC[cover]},output_picture_file.jpg" loading="lazy" audio_07.mp3
Untuk menetapkan bingkai sedemikian daripada fail xxx.gif (dengan lalai "Jenis Gambar", "Penutup (depan)",
dan huraian kosong), lakukan salah satu daripada
mp3info2 -F "APIC < xxx.gif" fail.mp3
mp3info2 -@F "APIC[]=@{I(fimbB)xxx.gif}" fail.mp3
Perbezaan "APIC" dan "APIC[]" ialah yang pertama mengalih keluar semua bingkai "APIC" dahulu,
dan yang kedua hanya mengalih keluar semua bingkai "APIC" dengan penerangan kosong - tetapi imej sewenang-wenangnya
taip. Jadi mungkin lebih sesuai untuk menggunakan spesifikasi penuh, seperti dalam "APIC(Cover
(depan))[]".
Untuk mengalih keluar bingkai "APIC" dengan penerangan kosong, "Jenis Gambar" sewenang-wenangnya (dan "MIME
jenis yang boleh dikira dengan betul oleh mp3info2, cth, "TIFF/JPEG/GIF/PNG"), gunakan
mp3info2 -d "APIC[]" fail.mp3
(perhatikan bahawa ini tidak akan mengosongkan ruang cakera, melainkan "mengecut" dipaksa oleh konfigurasi
pembolehubah). Untuk melakukan perkara yang sama dengan jenis gambar "Konduktor" sahaja, lakukan
mp3info2 -d fail "APIC(Konduktor)[]".mp3
Untuk mengimbas melalui subdirektori, dan menambah fail cover.jpg daripada direktori fail sebagai a
bingkai "lalai" "APIC", tetapi hanya jika tiada bingkai "APIC" dan fail wujud, lakukan
mp3info2 -@F "APIC ?< @D/cover.jpg" loading="lazy" -R .
Ini memadamkan bingkai kosong untuk tarikh, "TCOP, TENC, WXXX[], COMM(eng)[]", dan mengalih keluar
mendahului 0 daripada nombor trek daripada fail MP3 dalam direktori semasa:
mp3info2 -@ -E +/i:y -F "TCOP=@{TCOP}" -F "TENC=@{TENC}"
-F "WXXX[]=@{WXXX[]}" -F "COMM(eng)[]=@{COMM(eng)[]}"
-y "@y" -P "mi/@n/0@n/@n" *.mp3
Contoh on berurusan bersama pecah pengekodan
Salah satu kelemahan utama spesifikasi ID3 ialah ia memerlukan data tersebut
disediakan dalam pengekodan "latin-1". Oleh kerana kebanyakan bahasa di dunia tidak boleh diungkapkan
"latin-1", ini menyebabkan (majoriti?) teg ID3 tidak mematuhi standard. Lebih baru
versi spesifikasi membetulkan kelemahan ini, tetapi kerosakan telah dilakukan.
Nasib baik, skrip ini boleh menggunakan kebolehan "MP3::Tag" untuk menukar daripada tidak mematuhi
kandungan kepada yang sesuai.
Contoh berikut menukar teg ID3v2 yang ditulis dalam (tidak mematuhi standard)
pengekodan "cp1251" supaya berada dalam pengekodan yang mematuhi piawai. Untuk tujuan contoh ini,
andaikan bahawa teg ID3v1 berada dalam pengekodan yang sama (dan seseorang itu mahu meninggalkannya dalam
pengekodan "cp1251"); fail untuk diproses ditemui dalam direktori semasa dan
(secara rekursif) dalam subdirektorinya (sintaks "set" untuk cengkerang DOSISH):
tetapkan MP3TAG_DECODE_V1_DEFAULT=cp1251
tetapkan MP3TAG_DECODE_V2_DEFAULT=cp1251
mp3info2 -C id3v2_fix_encoding_on_write=1 -u2R .
Untuk mendapatkan maklumat lanjut, lihat "PERSEKITARAN" dalam MP3::Tag, "config" dalam MP3::Tag dan
"PENYESUAIAN" dalam MP3::Tag.
TIDAK SESUAI bersama mp3info
Alat ini dimodelkan secara longgar pada program mp3info; ia adalah "kebanyakannya" serasi ke belakang
(terutamanya apabila dalam mod "naif" melalui "-N"), dan membenarkan superset yang sangat ketara
kefungsian. Ketidakserasian mundur yang diketahui ialah:
-G -h -r -d -x
Tiada fungsi:
-f -F -i
Tidak serasi "%"-melarikan diri:
%e %E - semantik yang sama sekali berbeza
%v - tidak mempunyai 0s di belakang
%q - mempunyai bahagian pecahan
%r - ialah nombor, bukan perkataan "Pembolehubah" untuk VBR
%u - adakah satu kurang (dengan kehadiran bingkai deskriptor sahaja?)
Tiada "%"-melarikan diri:
%b %G
Garis miring ke belakang melarikan diri: hanya "\\", "\n", "\t" disokong.
"-x" mencetak data dalam format yang berbeza, tidak semua medan hadir dan nama teg ID3v2
adalah keluaran.
PERSEKITARAN
Dengan "-e" 1, 2 atau 3, skrip ini mungkin merujuk kepada pembolehubah persekitaran "LC_CTYPE, LC_ALL,
LANG" untuk menyimpulkan pengekodan semasa. Tiada pembolehubah persekitaran lain dibaca secara langsung oleh
skrip ini.
Walau bagaimanapun, ambil perhatian bahawa modul MP3:: Tag mempunyai set lalai yang kaya untuk tetapan pengekodan
boleh ditetapkan oleh pembolehubah persekitaran; lihat "PERSEKITARAN" dalam MP3::Tag. Jadi pembolehubah ini
mempengaruhi (secara tidak langsung) cara skrip ini berfungsi.
LABUH INTERFACE
Jika anda tidak memahami maksudnya, adalah selamat untuk mengabaikan pengumuman ini:
Cara lama, pra-versi=1.05 (dengan tiga kali ganda pemisah, tanpa pengulangan
pilihan) untuk menyediakan berbilang arahan kepada pilihan "-F" dan <-P> masih disokong, tetapi adalah
sangat tidak digalakkan. (Ia tidak bercanggah dengan antara muka semasa.)
Gunakan mp3info2p dalam talian menggunakan perkhidmatan onworks.net
