قم بتحويل الأرقام والمساحات المزدوجة في أسماء الملفات إلى ASCII
-
22-09-2019 - |
سؤال
بالنظر إلى دليل أسماء الملفات التي تتكون من أرقام ومساحات ذات عرض كامل/عرض كامل (إلى جانب بعض أرقام نصف العرض والرسومات السفلية) ، كيف يمكنني تحويل جميع الأرقام والمساحات إلى أحرف أحادية البايت؟
على سبيل المثال ، يتكون اسم الملف هذا من رقم مزدوج بايت ، يليه مساحة مزدوجة بايت ، تليها بعض الأحرف ذات البايت المفردة:
2 2_3.ext
وأرغب في تغييره إلى كل بايت واحد مثل:
2 2_3.ext
لقد حاولت convmv للتحويل من UTF8 إلى ASCII ، ولكن الرسالة التالية تظهر لجميع الملفات:
"ASCII لا يغطي جميع الشخصيات المطلوبة لـ: اسم الملف"
المحلول 3
شكرًا على ردودك السريعة ، Bmargulies و Bobince. لقد وجدت وحدة بيرل ، يونيكود :: اليابانية, ، هذا ساعد في إنجاز المهمة. إليكم نص Bash الذي قمت به (بمساعدة من هذا المثال) لتحويل أسماء الملفات في الدليل الحالي من العرض الكامل إلى أحرف نصف العرض:
#!/bin/bash
for file in *;do
newfile=$(echo $file | perl -MUnicode::Japanese -e'print Unicode::Japanese->new(<>)->z2h->get;')
test "$file" != "$newfile" && mv "$file" "$newfile"
done
نصائح أخرى
تحتاج إما (1) التطبيع من Java 1.6 (java.text.Normalizer
) ، أو (2) وحدة العناية المركزة, أو (3 (غير مرجح)) منتج يباع حسب المكان الذي أعمل فيه.
ما هي الأدوات التي لديك؟ هناك وظائف تطبيع Unicode في العديد من لغات البرمجة النصية ، على سبيل المثال في Python:
for child in os.listdir(u'.'):
normal= unicodedata.normalize('NFKC', child)
if normal!=child:
os.rename(child, normal)