fmt - منسق نص بسيط
• معاهدة المواد الانشطارية يقوم البرنامج أيضًا بطي النص ، بالإضافة إلى الكثير. يقبل إما الملفات أو الإدخال القياسي وينفذ تنسيق الفقرة في دفق النص. بشكل أساسي ، يملأ الأسطر وربطها في النص مع الحفاظ على الأسطر الفارغة والمسافة البادئة.
للتوضيح ، سنحتاج إلى بعض النصوص. دعنا نرفع البعض من معاهدة المواد الانشطارية صفحة المعلومات:
يقرأ "fmt" من وسيطات FILE المحددة (أو الإدخال القياسي إذا لم يتم توفير أي منها) ، ويكتب إلى الإخراج القياسي.
بشكل افتراضي ، تكون الأسطر الفارغة والمسافات بين الكلمات والمسافات البادئة
يقرأ "fmt" من وسيطات FILE المحددة (أو الإدخال القياسي إذا لم يتم توفير أي منها) ، ويكتب إلى الإخراج القياسي.
بشكل افتراضي ، تكون الأسطر الفارغة والمسافات بين الكلمات والمسافات البادئة
محفوظة في الإخراج ؛ لم يتم ربط سطور الإدخال المتتالية بمسافات بادئة مختلفة ؛ يتم توسيع علامات التبويب على الإدخال وتقديمها عند الإخراج.
يفضل "fmt" كسر الأسطر في نهاية الجملة ، ويحاول تجنب فواصل الأسطر بعد الكلمة الأولى من الجملة أو قبل الكلمة الأخيرة من الجملة. يتم تعريف "فاصل الجملة" على أنه إما نهاية فقرة أو كلمة تنتهي بأي من ".؟!" ، متبوعة بمسافتين أو نهاية السطر ، مع تجاهل أي أقواس أو علامات اقتباس متداخلة. مثل TeX ، يقرأ fmt "فقرات" كاملة قبل اختيار فواصل الأسطر ؛ الخوارزمية هي البديل عن تلك التي قدمها دونالد كنوث ومايكل ف.بلاس في "كسر الفقرات في السطور" ،
"البرمجيات - الممارسة والخبرة" 11 ، 11 (نوفمبر 1981) ، 1119-1184.
محفوظة في الإخراج ؛ لم يتم ربط سطور الإدخال المتتالية بمسافات بادئة مختلفة ؛ يتم توسيع علامات التبويب على الإدخال وتقديمها عند الإخراج.
يفضل "fmt" كسر الأسطر في نهاية الجملة ، ويحاول تجنب فواصل الأسطر بعد الكلمة الأولى من الجملة أو قبل الكلمة الأخيرة من الجملة. يتم تعريف "فاصل الجملة" على أنه إما نهاية فقرة أو كلمة تنتهي بأي من ".؟!" ، متبوعة بمسافتين أو نهاية السطر ، مع تجاهل أي أقواس أو علامات اقتباس متداخلة. مثل TeX ، يقرأ fmt "فقرات" كاملة قبل اختيار فواصل الأسطر ؛ الخوارزمية هي البديل عن تلك التي قدمها دونالد كنوث ومايكل ف.بلاس في "كسر الفقرات في السطور" ،
"البرمجيات - الممارسة والخبرة" 11 ، 11 (نوفمبر 1981) ، 1119-1184.
سنقوم بنسخ هذا النص في محرر النصوص الخاص بنا وحفظ الملف بتنسيق fmt- info.txt. الآن ، لنفترض أننا أردنا إعادة تنسيق هذا النص ليناسب عمودًا بعرض خمسين حرفًا. يمكننا القيام بذلك عن طريق معالجة الملف باستخدام معاهدة المواد الانشطارية و -w الخيار:
[me @ linuxbox ~] $ fmt -w 50 fmt-info.txt | رئيس
يقرأ "fmt" من وسيطات FILE المحددة (أو الإدخال القياسي إذا
لا شيء) ، ويكتب إلى الإخراج القياسي.
بشكل افتراضي ، تكون الأسطر الفارغة والمسافات بين الكلمات والمسافات البادئة
محفوظة في الإخراج ؛ لم يتم ربط سطور الإدخال المتتالية بمسافات بادئة مختلفة ؛ يتم توسيع علامات التبويب على الإدخال وتقديمها عند الإخراج.
[me @ linuxbox ~] $ fmt -w 50 fmt-info.txt | رئيس
يقرأ "fmt" من وسيطات FILE المحددة (أو الإدخال القياسي إذا
لا شيء) ، ويكتب إلى الإخراج القياسي.
بشكل افتراضي ، تكون الأسطر الفارغة والمسافات بين الكلمات والمسافات البادئة
محفوظة في الإخراج ؛ لم يتم ربط سطور الإدخال المتتالية بمسافات بادئة مختلفة ؛ يتم توسيع علامات التبويب على الإدخال وتقديمها عند الإخراج.
حسنًا ، هذه نتيجة محرجة. ربما يجب أن نقرأ هذا النص بالفعل ، لأنه يشرح ما يجري:
بشكل افتراضي ، يتم الاحتفاظ بالأسطر الفارغة والمسافات بين الكلمات والمسافات البادئة في الإخراج ؛ لم يتم ربط سطور الإدخال المتتالية بمسافات بادئة مختلفة ؛ يتم توسيع علامات التبويب على الإدخال وتقديمها عند الإخراج.
وبالتالي، معاهدة المواد الانشطارية يحافظ على المسافة البادئة للسطر الأول. لحسن الحظ، معاهدة المواد الانشطارية يوفر خيارًا لتصحيح هذا:
[me @ linuxbox ~] $ FMT -CW 50 FMT-info.txt
يقرأ "fmt" من وسيطات FILE المحددة (أو الإدخال القياسي إذا لم يتم توفير أي منها) ، ويكتب إلى الإخراج القياسي.
[me @ linuxbox ~] $ FMT -CW 50 FMT-info.txt
يقرأ "fmt" من وسيطات FILE المحددة (أو الإدخال القياسي إذا لم يتم توفير أي منها) ، ويكتب إلى الإخراج القياسي.
بشكل افتراضي ، يتم الاحتفاظ بالأسطر الفارغة والمسافات بين الكلمات والمسافات البادئة في الإخراج ؛ لم يتم ربط سطور الإدخال المتتالية بمسافات بادئة مختلفة ؛ يتم توسيع علامات التبويب على الإدخال وتقديمها عند الإخراج.
يفضل "fmt" كسر الأسطر في نهاية الجملة ، ويحاول تجنب فواصل الأسطر بعد الكلمة الأولى من الجملة أو قبلها.
الكلمة الأخيرة من الجملة. يتم تعريف "فاصل الجملة" على أنه إما نهاية فقرة أو كلمة تنتهي بأي من ".؟!" ، متبوعة بمسافتين أو نهاية السطر ، مع تجاهل أي
الأقواس أو علامات الاقتباس المتداخلة. مثل TeX ،
يقرأ "fmt" "فقرات" كاملة قبل اختيار فواصل الأسطر ؛ الخوارزمية هي البديل من
التي قدمها دونالد كنوث ومايكل ف.بلاس في "كسر الفقرات في السطور" ،
"البرمجيات - الممارسة والخبرة" 11 ، 11
(نوفمبر 1981) ، 1119-1184.
بشكل افتراضي ، يتم الاحتفاظ بالأسطر الفارغة والمسافات بين الكلمات والمسافات البادئة في الإخراج ؛ لم يتم ربط سطور الإدخال المتتالية بمسافات بادئة مختلفة ؛ يتم توسيع علامات التبويب على الإدخال وتقديمها عند الإخراج.
يفضل "fmt" كسر الأسطر في نهاية الجملة ، ويحاول تجنب فواصل الأسطر بعد الكلمة الأولى من الجملة أو قبلها.
الكلمة الأخيرة من الجملة. يتم تعريف "فاصل الجملة" على أنه إما نهاية فقرة أو كلمة تنتهي بأي من ".؟!" ، متبوعة بمسافتين أو نهاية السطر ، مع تجاهل أي
الأقواس أو علامات الاقتباس المتداخلة. مثل TeX ،
يقرأ "fmt" "فقرات" كاملة قبل اختيار فواصل الأسطر ؛ الخوارزمية هي البديل من
التي قدمها دونالد كنوث ومايكل ف.بلاس في "كسر الفقرات في السطور" ،
"البرمجيات - الممارسة والخبرة" 11 ، 11
(نوفمبر 1981) ، 1119-1184.
أفضل بكثير. عن طريق إضافة -c الخيار ، لدينا الآن النتيجة المرجوة.
لدى fmt بعض الخيارات المثيرة للاهتمام:
جدول 21-3: خيارات fmt
وصف الخيار
وصف الخيار
-c تعمل في هامش التاج الوضع. هذا يحافظ على المسافة البادئة لأول سطرين من الفقرة. يتم محاذاة الأسطر اللاحقة مع المسافة البادئة للسطر الثاني.
-p سلسلة فقط تنسيق تلك الأسطر التي تبدأ بالبادئة سلسلة. بعد التنسيق ، محتويات سلسلة مسبوقة بكل سطر تمت إعادة تنسيقه. يمكن استخدام هذا الخيار لتنسيق النص في تعليقات التعليمات البرمجية المصدر. على سبيل المثال ، يمكن تنسيق أي لغة برمجة أو ملف تهيئة يستخدم الحرف "#" لتحديد تعليق من خلال تحديد -p "#" حتى يتم تنسيق التعليقات فقط. انظر المثال أدناه.
-s وضع الانقسام فقط. في هذا الوضع ، سيتم تقسيم الخطوط فقط لتناسب عرض العمود المحدد. لن يتم ضم الأسطر القصيرة لملء الأسطر. هذا الوضع مفيد عند تنسيق نص مثل التعليمات البرمجية حيث يكون الانضمام غير مرغوب فيه.
-u أداء تباعد منتظم. سيؤدي هذا إلى تطبيق "الآلة الكاتبة-
على غرار "تنسيق النص. هذا يعني مسافة واحدة بين الكلمات ومسافتين بين الجمل. هذا الوضع مفيد لإزالة "التبرير" ، أي النص الذي تم تبطينه بمسافات لفرض المحاذاة على كل من الهامش الأيمن والأيسر.
-w عرض تنسيق النص ليلائم العمود عرض الأحرف واسعة. الافتراضي هو 75 حرفًا. ملحوظة: معاهدة المواد الانشطارية في الواقع يقوم بتنسيق الخطوط الأقصر قليلاً من العرض المحدد للسماح بموازنة الخطوط.
• -p الخيار مثير للاهتمام بشكل خاص. بواسطته ، يمكننا تنسيق الأجزاء المحددة من الملف ، بشرط أن تبدأ جميع الأسطر المراد تنسيقها بنفس تسلسل الأحرف. تستخدم العديد من لغات البرمجة علامة الجنيه (#) للإشارة إلى بداية التعليق وبالتالي يمكن تنسيقها باستخدام هذا الخيار. لنقم بإنشاء ملف يحاكي برنامجًا يستخدم التعليقات:
[me @ linuxbox ~] $ قطة> fmt-code.txt
# يحتوي هذا الملف على رمز مع تعليقات.
# هذا الخط تعليق.
# متبوعًا بخط تعليق آخر.
# وآخر.
هذا ، من ناحية أخرى ، هو سطر من التعليمات البرمجية. وسطر آخر من التعليمات البرمجية.
وآخر.
[me @ linuxbox ~] $ قطة> fmt-code.txt
# يحتوي هذا الملف على رمز مع تعليقات.
# هذا الخط تعليق.
# متبوعًا بخط تعليق آخر.
# وآخر.
هذا ، من ناحية أخرى ، هو سطر من التعليمات البرمجية. وسطر آخر من التعليمات البرمجية.
وآخر.
يحتوي ملف العينة الخاص بنا على تعليقات تبدأ بالسلسلة "#" (a # متبوعة بمسافة) وسطر "التعليمات البرمجية" التي لا تفعل ذلك. الآن ، باستخدام معاهدة المواد الانشطارية، يمكننا تنسيق التعليقات وترك الكود كما هو:
[me @ linuxbox ~] $ fmt -w 50 -p '#' fmt-code.txt
# يحتوي هذا الملف على رمز مع تعليقات.
# هذا الخط تعليق. تلاه آخر
سطر تعليق واحد. وآخر.
هذا ، من ناحية أخرى ، هو سطر من التعليمات البرمجية. وسطر آخر من التعليمات البرمجية.
وآخر.
[me @ linuxbox ~] $ fmt -w 50 -p '#' fmt-code.txt
# يحتوي هذا الملف على رمز مع تعليقات.
# هذا الخط تعليق. تلاه آخر
سطر تعليق واحد. وآخر.
هذا ، من ناحية أخرى ، هو سطر من التعليمات البرمجية. وسطر آخر من التعليمات البرمجية.
وآخر.
لاحظ أنه تم ضم أسطر التعليق المجاورة ، بينما يتم الاحتفاظ بالأسطر الفارغة والأسطر التي لا تبدأ بالبادئة المحددة.