هذا هو الأمر trposix الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
tr — ترجمة الأحرف
موجز
tr [-ج|-C] [-س] string1 string2
آر - ق [-ج|-C] string1
آر -د [-ج|-C] string1
آر -دس [-ج|-C] string1 string2
الوصف
ال tr يجب على الأداة المساعدة نسخ الإدخال القياسي إلى الإخراج القياسي مع الاستبدال أو
حذف الأحرف المحددة. الخيارات المحددة و string1 و string2
يجب أن تتحكم المعاملات في الترجمات التي تحدث أثناء نسخ الأحرف والأحرف المفردة
عناصر تجميع الأحرف.
OPTIONS
ال tr يجب أن تتوافق المنفعة مع حجم التعريفات الأساسية لـ POSIX.1-2008 ، القسم 12.2,
مرافق بناء الجملة التوجيهات.
يجب دعم الخيارات التالية:
− ج أكمل مجموعة القيم المحددة بواسطة string1. انظر الوصف الموسع
والقسم الخاص به.
− ج أكمل مجموعة الأحرف المحددة بواسطة string1. انظر الموسعة
قسم الوصف.
− د حذف كافة تكرارات أحرف الإدخال التي تم تحديدها بواسطة string1.
-س استبدل مثيلات الأحرف المتكررة بحرف واحد، كما هو موضح
في قسم الوصف الموسع.
العمليات
يجب دعم المعاملات التالية:
string1, string2
سلاسل التحكم في الترجمة. يجب أن تمثل كل سلسلة مجموعة من الأحرف
يمكن تحويلها إلى مجموعة من الأحرف المستخدمة للترجمة. ل
وصف تفصيلي لكيفية تفسير السلاسل، راجع EXTENDED
قسم الوصف.
ستدين
يمكن أن يكون الإدخال القياسي أي نوع من الملفات.
INPUT FILES
لا شيء.
البيئة المتغيرات
يجب أن تؤثر متغيرات البيئة التالية على تنفيذ tr:
لانج قم بتوفير قيمة افتراضية لمتغيرات التدويل غير المضبوطة أو
باطل. (انظر حجم التعريفات الأساسية لـ POSIX.1-2008 ، القسم 8.2,
التجارة في الخارج المتغيرات لأسبقية التدويل
المتغيرات المستخدمة لتحديد قيم الفئات المحلية.)
LC_ALL إذا تم التعيين على قيمة سلسلة غير فارغة ، فتجاوز قيم جميع القيم الأخرى
متغيرات التدويل.
LC_COLLATE
تحديد اللغة لسلوك تعبيرات النطاق والتكافؤ
الطبقات.
LC_CTYPE تحديد الإعدادات المحلية لتفسير تسلسل بايت من البيانات النصية
كأحرف (على سبيل المثال ، أحادية البايت بدلاً من أحرف متعددة البايت بتنسيق
الحجج) وسلوك فئات الأحرف.
رسائل LC
حدد الإعدادات المحلية التي يجب استخدامها للتأثير على تنسيق ومحتويات
رسائل التشخيص المكتوبة على خطأ قياسي.
نلسباث تحديد موقع كتالوجات الرسائل لمعالجتها رسائل LC.
غير متزامن فعاليات
افتراضي.
STDOUT
ال tr يجب أن يكون الإخراج مطابقًا للمدخلات، باستثناء ما هو محدد
التحولات.
ستدير
يجب استخدام الخطأ القياسي فقط لرسائل التشخيص.
OUTPUT FILES
لا شيء.
وسعوا الوصف
المعاملات string1 و string2 (إذا تم تحديده) حدد صفيفين من الأحرف. ال
يمكن استخدام البنيات الموجودة في القائمة التالية لتحديد أحرف أو حرف واحد
تجميع العناصر. إذا أدى أي من التركيبات إلى عناصر مجمعة متعددة الأحرف،
tr يجب أن تستبعد، بدون تشخيص، تلك العناصر متعددة الأحرف من الناتج
مجموعة مصفوفة.
حرف يجب أن تمثل أي شخصية غير موصوفة في إحدى الاتفاقيات أدناه
نفسها.
\ثماني يمكن استخدام التسلسل الثماني لتمثيل الأحرف ذات قيم مشفرة محددة.
يجب أن يتكون التسلسل الثماني من أ تليها الأطول
تسلسل مكون من حرف واحد أو رقمين أو ثلاثة أرقام (01234567). الترتيب
يجب أن يتسبب في القيمة التي يتم تمثيل ترميزها بالرمز واحد أو اثنين أو ثلاثة
أرقام عدد صحيح ثماني ليتم وضعها في الصفيف. تتطلب أحرف متعددة البايت
تسلسلات هروب متعددة ومتسلسلة من هذا النوع، بما في ذلك البادئة
لكل بايت.
\حرف
ال -تسلسلات الهروب في حجم التعريفات الأساسية لـ POSIX.1‐2008،
طاولات 5-1, هرب متواليات و المستشفيات الإجراءات ("\\", '\أ', '\ب', '\F',
'\ن', "\ r", "\ t", '\الخامس') يجب أن تكون مدعومة. نتائج استخدام أي شيء آخر
حرف، بخلاف الرقم الثماني، بعد غير محددة.
أيضًا، إذا لم يكن هناك أي حرف يتبع ، النتائج هي
غير محدد.
c-c في لغة POSIX، يجب أن يمثل هذا البناء نطاق الترتيب
العناصر بين نقاط نهاية النطاق (طالما أن أياً من نقاط النهاية ليست ثمانيًا
تسلسل النموذج \ثماني)، شاملاً، كما هو محدد في تسلسل الترتيب.
يجب وضع الأحرف أو العناصر المجمعة في النطاق في المصفوفة
في تسلسل الترتيب التصاعدي. إذا كانت نقطة النهاية الثانية تسبق البداية
نقطة النهاية في تسلسل الترتيب، من غير المحدد ما إذا كان نطاق
ترتيب العناصر فارغ، أو يتم التعامل مع هذه البنية على أنها غير صالحة. في اللغات
بخلاف لغة POSIX، فإن هذا البناء له سلوك غير محدد.
إذا كانت إحدى نقطتي نهاية النطاق أو كليهما عبارة عن تسلسلات ثماني من النموذج \ثماني,
ويجب أن يمثل هذا نطاق القيم المشفرة المحددة بين النطاقين
نقاط النهاية، شاملة.
[:فئة:] يمثل جميع الأحرف التي تنتمي إلى فئة الأحرف المحددة، كما هو محدد
من خلال الإعداد الحالي لل LC_CTYPE فئة اللغة. الحرف التالي
يجب قبول أسماء الفئات عند تحديدها في string1:
alnum فارغة أرقام خفض نقطة أعلى
ألفا السيطرة رسم بياني طباعة الفضاء xdigit
بالإضافة إلى ذلك، تعبيرات فئة الأحرف من النموذج [:الاسم:] يجب أن يكون
المعترف بها في تلك المناطق حيث الاسم تم إعطاء الكلمة الرئيسية أ com.charclass
تعريف في LC_CTYPE الفئة.
عندما يكون كل من − د و -س يتم تحديد الخيارات، أي من أسماء فئة الأحرف
سيتم قبوله في string2. بخلاف ذلك، أسماء فئات الأحرف فقط خفض or
أعلى صالحة في string2 وبعد ذلك فقط إذا كانت فئة الأحرف المقابلة
(أعلى و خفض، على التوالي) في نفس الموضع النسبي في
string1. يجب تفسير هذه المواصفات على أنها طلب للقضية
تحويل. متى [:خفض:] يظهر في string1 و [:أعلى:] يظهر في string2,
يجب أن تحتوي المصفوفات على أحرف من العلبة رسم الخرائط في LC_CTYPE
فئة اللغة الحالية. متى [:أعلى:] يظهر في string1 و [:خفض:]
يظهر في string2، يجب أن تحتوي المصفوفات على أحرف من أدنى
رسم الخرائط في LC_CTYPE فئة اللغة الحالية. الحرف الأول من
يجب أن يكون كل زوج تعيين في المصفوفة string1 والحرف الثاني
من كل زوج تعيين يجب أن يكون في المصفوفة لـ string2 في نفس النسبية
.
باستثناء تحويل الحالة، يتم تحديد الأحرف بواسطة فئة الأحرف
يجب وضع التعبير في المصفوفة بترتيب غير محدد.
إذا كان الاسم المحدد ل فئة لا يحدد فئة أحرف صالحة في
اللغة الحالية، والسلوك غير محدد.
[=تعادل=] يمثل جميع الشخصيات أو العناصر المجمعة التي تنتمي إليها
فئة التكافؤ كما تعادل، كما هو محدد بواسطة الإعداد الحالي لـ LC_COLLATE
فئة اللغة. يُسمح بتعبير فئة التكافؤ فقط في
string1، أو في string2 عندما يتم استخدامه من قبل مجتمعة − د و -س خيارات.
يجب وضع الأحرف التي تنتمي إلى فئة التكافؤ في المصفوفة
بترتيب غير محدد.
[x*n] يمثل n تكرار حدوث الشخصية x. لأن هذا التعبير
يتم استخدامه لتعيين عدة أحرف لشخص واحد، وهو صالح فقط عندما يحدث في
string2. إذا n تم حذفه أو كان صفراً، يجب أن يتم تفسيره على أنه كبير بما يكفي
تمديد string2تسلسل قائم على طول string1التسلسل القائم.
If n إذا كانت لها صفر بادئ، فيجب تفسيرها على أنها قيمة ثماني. خلاف ذلك،
يجب أن يتم تفسيره على أنه قيمة عشرية.
عندما − د الخيار غير محدد:
* لو string2 موجود، كل حرف إدخال موجود في المصفوفة المحددة بواسطة string1
يجب استبداله بالحرف الموجود في نفس الموضع النسبي في المصفوفة
المحدد من قبل string2. إذا كانت المصفوفة المحددة بواسطة string2 أقصر من ذلك
المحدد من قبل string1أو إذا تكرر الحرف أكثر من مرة string1، النتائج
غير محددة.
* إذا كان ملف − ج تم تحديد الخيار، ومكملات الأحرف المحددة بواسطة string1
(مجموعة كافة الأحرف في مجموعة الأحرف الحالية، كما هو محدد بواسطة الحالي
تجهيز LC_CTYPE، باستثناء تلك المحددة فعليًا في string1 المعامل) يجب
يتم وضعها في المصفوفة في تسلسل ترتيب تصاعدي، كما هو محدد بواسطة التيار
تجهيز LC_COLLATE.
* إذا كان ملف − ج تم تحديد الخيار، تكملة القيم المحددة بواسطة string1 سوف
يتم وضعها في المصفوفة بترتيب تصاعدي حسب القيمة الثنائية.
* لأن الترتيب الذي يتم به تحديد الأحرف بواسطة تعبيرات فئة الأحرف أو
تعبيرات فئة التكافؤ غير محددة، ويجب استخدام هذه التعبيرات فقط إذا
القصد من ذلك هو تعيين عدة أحرف في حرف واحد. الاستثناء هو تحويل الحالة، كما
الموصوفة سابقا.
عندما − د تم تحديد الخيار:
* تم العثور على أحرف الإدخال في المصفوفة المحددة بواسطة string1 سيتم حذفها.
* عندما − ج تم تحديد الخيار مع − د، كافة الأحرف باستثناء تلك المحددة بواسطة
string1 سيتم حذفها. محتويات string2 يتم تجاهلها، ما لم -س الخيار
المحدد أيضا.
* عندما − ج تم تحديد الخيار مع − د، كافة القيم باستثناء تلك المحددة بواسطة string1
سيتم حذفها. محتويات string2 سيتم تجاهلها، ما لم -س الخيار
المحدد أيضا.
* لا يمكن استخدام نفس السلسلة لكلا الملفين − د و -س خيار؛ عندما يكون كلا الخيارين
يتم تحديد كليهما string1 (تستخدم للحذف) و string2 (تستخدم للضغط) يجب
تكون مطلوبة.
عندما -س يتم تحديد الخيار، بعد حدوث أي عمليات حذف أو ترجمة،
يجب استبدال التسلسلات المتكررة من نفس الحرف بتكرار واحد لنفس الحرف
الحرف، إذا تم العثور على الحرف في المصفوفة المحددة بواسطة المعامل الأخير. إذا
يحتوي المعامل الأخير على فئة أحرف، مثل المثال التالي:
tr -س '[:فضاء:]'
يجب أن تحتوي مصفوفة المعامل الأخير على كافة الأحرف الموجودة في فئة الأحرف تلك.
ومع ذلك ، في حالة التحويل ، كما هو موضح سابقًا ، مثل:
tr -س "[: العلوي:]" '[:أدنى:]'
يجب أن تحتوي مصفوفة المعامل الأخير فقط على تلك الأحرف المحددة على أنها المعامل الثاني
الشخصيات في كل من العلبة or أدنى أزواج الأحرف، حسب الاقتضاء.
سلسلة فارغة تستخدم ل string1 or string2 تنتج نتائج غير محددة.
EXIT الوضع
يتم إرجاع قيم الخروج التالية:
0 تمت معالجة كافة المدخلات بنجاح.
> 0 حدث خطأ.
عواقب OF أخطاء
افتراضي.
ال متابعيك أقسام . غنيا بالمعلومات.
تطبيق الاستعمال
اذا كان ضروري، string1 و string2 يمكن اقتباسها لتجنب مطابقة الأنماط بواسطة الصدفة.
إذا كان الرقم العادي (الذي يمثل نفسه) يتبع تسلسلًا ثمانيًا، فإن الرقم الثماني
يجب أن يستخدم التسلسل الأرقام الثلاثة الكاملة لتجنب الغموض.
متى string2 أقصر من string1، يظهر فرق بين النظام التاريخي V و
أنظمة بي إس دي. منصات نظام BSD string2 مع الحرف الأخير الموجود في string2. وبالتالي فإنه
من الممكن القيام بما يلي:
tr 0123456789 d
والتي من شأنها أن تترجم جميع الأرقام إلى الرسالة 'د'. وبما أن هذه المنطقة على وجه التحديد
غير محدد في هذا المجلد من POSIX.1-2008، فإن سلوكيات BSD وSystem V هي
مسموح به، لكن التطبيق المطابق لا يمكنه الاعتماد على سلوك BSD. سيكون عليه أن يفعل ذلك
رمز المثال بالطريقة التالية:
tr 0123456789 '[د*]'
تجدر الإشارة إلى أنه على الرغم من التشابه في المظهر، فإن معاملات السلسلة المستخدمة من قبل
tr ليست تعبيرات عادية.
على عكس بعض التطبيقات التاريخية، فإن هذا التعريف لـ tr فائدة بشكل صحيح
يعالج أحرف NUL في دفق الإدخال الخاص به. يمكن تجريد أحرف NUL باستخدام:
tr − د '000'
أمثلة
1. يقوم المثال التالي بإنشاء قائمة بجميع الكلمات الموجودة file1 واحد لكل سطر في file2,
حيث تعتبر الكلمة سلسلة قصوى من الحروف.
tr -CS "[:ألفا:]" "[\ن*]" <ملف1 > ملف 2
2. المثال التالي يترجم كافة الأحرف الصغيرة إلى الداخل file1 للأحرف الكبيرة ويكتب
النتائج إلى الإخراج القياسي.
tr "[:أدنى:]" "[: العلوي:]" <ملف1
3. يستخدم هذا المثال فئة التكافؤ لتحديد المتغيرات المحركة للقاعدة
حرف "ه" in file1، والتي تم تجريدها من علامات التشكيل وكتابتها file2.
tr "[=ه=]" "[ه*]" <ملف1 > ملف 2
الأساس المنطقي
في بعض المقترحات المبكرة، خيار واضح -ن تمت إضافته لتعطيل التاريخية
سلوك تجريد أحرف NUL من الإدخال. وكان يعتبر ذلك تلقائيا
تجريد أحرف NUL من الإدخال لم يكن الوظيفة الصحيحة. ومع ذلك ، فإن
إزالة -ن في اقتراح لاحق لا يزيل شرط ذلك tr بشكل صحيح
معالجة أحرف NUL في دفق الإدخال الخاص بها. يمكن تجريد أحرف NUL باستخدام tr − د
"000".
التطبيقات التاريخية لـ tr تختلف على نطاق واسع في بناء الجملة والسلوك. على سبيل المثال ، ملف
لا يحتاج إصدار BSD إلى أحرف القوس لتسلسل التكرار. ال tr
يعتمد بناء جملة الأداة المساعدة بشكل أوثق على نموذج System V وXPG3 أثناء محاولة ذلك
استيعاب تطبيقات BSD التاريخية. في حالة القصير string2 الحشو،
كان القرار هو إلغاء تحديد السلوك والحفاظ على البرامج النصية System V وXPG3، وهو ما قد يحدث
تجد صعوبة في طريقة BSD. تم الافتراض بأن مستخدمي BSD لـ tr يجب أن
قم بإجراء تسهيلات لتلبية بناء الجملة المحدد هنا. لأنه من الممكن استخدام
تسلسل التكرار لتكرار السلوك المطلوب ، بينما لا توجد طريقة بسيطة لذلك
لتحقيق طريقة النظام V، كان هذا هو النهج الصحيح، إن لم يكن مرغوبًا فيه.
استخدام القيم الثمانية لتحديد أحرف التحكم، مع وجود سوابق تاريخية،
غير محمول. يجب إدخال تسلسلات الهروب لأحرف التحكم
توفير قابلية النقل اللازمة. ومن المسلم به أن هذا قد يسبب بعض التاريخية
البرامج النصية لكسر.
تضمن الاقتراح المبكر دعمًا لعناصر التجميع متعددة الأحرف. وقد أشار
من ذلك، في حين tr يستخدم بعض العناصر النحوية من مصادر الطاقة المتجددة، والهدف من ذلك tr هادئ
مختلف؛ النطاقات، على سبيل المثال، ليس لها معنى مماثل ("أي من الأحرف الموجودة في."
تطابقات النطاق ''، مقابل ``ترجمة كل حرف في النطاق إلى الإخراج
نظيره ''). ونتيجة لذلك، تم تضمين الدعم مسبقًا لترتيب الأحرف المتعددة
تمت إزالة العناصر. ما تبقى هو النطاقات في ترتيب الترتيب الحالي (لدعم،
على سبيل المثال، الأحرف المحركة)، وفئات الأحرف، وفئات التكافؤ.
في XPG3 [:فئة:] و [=تعادل=] يتم عرض الاصطلاحات بين قوسين مزدوجين، كما في RE
بناء الجملة. لكن، tr لا يطبق مبادئ الطاقة المتجددة؛ إنه يستعير فقط جزءًا من بناء الجملة.
بالتالي، [:فئة:] و [=تعادل=] ينبغي اعتبارها عناصر نحوية على قدم المساواة
مع [x*n]، وهو ليس تعبير قوس RE.
سيأخذ المطورون القياسيون في الاعتبار التغييرات tr التي تسمح لها بترجمة الحروف
بين ترميزات الأحرف المختلفة، أو سيفكرون في توفير أداة مساعدة جديدة لـ
تحقيق هذا.
في أنظمة النظام V التاريخية، يتطلب تعبير النطاق تضمين أقواس مربعة،
مثل:
tr "[az]" "[من الألف إلى الياء]"
ومع ذلك، فإن الأنظمة المستندة إلى BSD لا تتطلب الأقواس، ويتم استخدام هذه الاتفاقية هنا
لتجنب كسر أعداد كبيرة من نصوص BSD:
tr من الألف إلى الياء Dailytrad وكالة ترجمة دولية تقدم خدمات ترجمة لأكثر من XNUMX لغة حول العالم.
سيستمر البرنامج النصي السابق للنظام V في العمل لأنه يتم التعامل مع الأقواس على أنها
الشخصيات العادية، تتم ترجمتها لأنفسهم. ومع ذلك، فإن أي برنامج نصي للنظام V
الاعتماد عليها "أ-ي" يمثل الشخصيات الثلاثة 'A', "-"و "ض" يجب إعادة كتابتها
as "من الألف إلى الياء−".
يحتوي معيار ISO POSIX‐2:1993 على − ج الخيار الذي تصرف بشكل مشابه ل − ج الخيار ، ولكن
لم توفر وظائف مكافئة لـ − ج الخيار المحدد في POSIX.1‐2008. هذا
يعني أن الممارسة التاريخية المتمثلة في القدرة على التحديد tr -قرص مضغوط\000−\177 (والذي من شأنه أن
حذف كافة البايتات مع مجموعة البت العليا) لن يكون له أي تأثير لأنه، في لغة C،
البايتات ذات القيم الثمانية 200 إلى الثماني 377 ليست أحرفًا.
قال الإصدار السابق أيضًا أن التسلسلات الثمانية تشير إلى ترتيب العناصر و
يمكن وضعها بجوار بعضها البعض لتحديد أحرف متعددة البايت. ومع ذلك، كان
وأشار إلى أن هذا تسبب في غموض ل tr لن تكون قادرة على معرفة ما إذا كانت المجاورة
تهدف التسلسلات الثمانية إلى تحديد أحرف متعددة البايت أو بايت واحد متعدد
الشخصيات. يحدد POSIX.1‐2008 أن التسلسلات الثمانية تشير دائمًا إلى ثنائي بايت واحد
القيم عند استخدامها لتحديد نقطة نهاية لمجموعة من العناصر المجمعة.
الإصدارات السابقة من هذا المعيار سمحت بالتطبيقات ذات البايتات بخلاف ثمانية
بت ، ولكن تم تعديل هذا في هذا الإصدار.
المستقبل طريقة الاستعمال
لا شيء.
استخدم trposix عبر الإنترنت باستخدام خدمات onworks.net