قم بتحويل الأرقام والمساحات المزدوجة في أسماء الملفات إلى ASCII

StackOverflow https://stackoverflow.com/questions/1992581

  •  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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top