سؤال

وأنا على OS X 10.5.5 (على الرغم من أنه لا يهم كثيرا اعتقد)

ولدي مجموعة من الملفات النصية مع شخصيات خيالية مثل backquotes مزدوجة، ellipsises ( "...") في حرف واحد الخ.

وأنا في حاجة لتحويل هذه الملفات إلى حسن البالغ من العمر عادي ASCII 7 بت، ويفضل دون أن تفقد معنى حرف (وهذا هو، تحويل تلك الحذف إلى ثلاث فترات، backquotes إلى المعتاد "ليالي الخ.).

يرجى تقديم المشورة بعض الذكية سطر الأوامر (باش) أداة / النصي للقيام بذلك.

هل كانت مفيدة؟

المحلول

إي لنكس متصفح الويب سيتم تحويل الكيانات Unicode إلى مكافئات ASCII، ويعطي أشياء مثل "-" ل"-" و "..." ل "..."، وما إلى ذلك هناك وحدة الثعبان <لأ href = "http://code.google.com/p/python-elinks/" يختلط = "نوفولو noreferrer" > الثعبان-إي لنكس التي يستخدم نفس الجدول التحويل، وسيكون تافها لتحويله إلى تصفية شركة شل، ومثل هذا:

#!/usr/bin/env python
import elinks
import sys
for line in sys.stdin:
    line = line.decode('utf-8')
    sys.stdout.write(line.encode('ASCII', 'elinks'))

نصائح أخرى

يكونف ينبغي أن نفعل ذلك، وبقدر ما أعرف. ليس 100٪ معينة حول كيف يعالج التحويلات حيث يجب حرف إدخال واحد / يمكن أن تصبح عدة شخصيات الإخراج، كما هو الحال مع المثال القطع ... شيء لمحاولة!

تحديث: أنا لم تحاول ذلك، ويبدو أنها لا تعمل. فشلت، ربما لأنه لا يعرف كيفية التعبير عن القطع (الطابع اختبار كنت) في ترميز "أصغر". تحويل من UTF-8 إلى UTF-16 ذهب على ما يرام. : / لا يزال، يكونف قد يكون من المفيد التحقيق أبعد

وإلقاء نظرة على أدوات الترجمة. أنا أحب Unidecode (باللغة بيرل) ، وانها ليست من الصعب جدا لميناء إلى لغات أخرى.

ولقد استخدمت يكونف لتحويل ملف من UTF-16LE (Endian طفيف كما اكتشفت عن طريق التجربة والخطأ) التي تم إنشاؤها بواسطة TextPad في نظام التشغيل Windows في ASCII على OSX مثل هذا:

 cat utf16file.txt |iconv -f UTF-16LE -t ASCII > asciifile.txt

ويمكنك من خلال أنبوب hexdump بالإضافة لعرض الحروف وتأكد من أنك تحصل على الناتج الصحيح، ومحطة يعرف كيفية تفسير UTF-16 ويعرض بشكل صحيح بحيث لا أستطيع أن أقول فقط لكنه لا يفعل "القط" على الملف:

cat utf16file.txt | iconv -f UTF-16LE -t ASCII | hexdump -C 

وهذا يدل على تخطيط مع رموز عرافة حرف وحرف ASCII إلى الجانب الأيمن، ويمكنك أن تجرب ترميزات مختلفة في -f "من" المعلمة لمعرفة ما كنت تتعامل مع.

استخدم "-l يكونف" لسرد مجموعات الأحرف يكونف يمكن استخدامها على النظام الخاص بك.

وكان هناك سؤال أمس أو اليوم قبل إعادة تسمية حول الملف، وأظهر لي السيناريو rename.pl بيرل التي من شأنها أن تكون صالحة للاستعمال لهذه المهمة. منطقة المشكلة هي معرفة كيف يتم ترميز الأحرف ونيف، ووضع التسلسل الصحيح من الترجمات الحرفية. ربما كنت تفعل ذلك مع التكيف من أن السيناريو الذي فعل كل تعيينات بالتتابع. سوف أفعل ذلك حرف واحد في وقت يكون ذكي لا مبرر له.

والسؤال هو: كيفية إعادة تسمية مع بادئة / لاحقة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top