LESSPIPE.SH(1)

الاسم
lesspipe.sh - مرشح لـ less

موجز
lesspipe.sh [ملف[ات]]...

الوصف

الهدف من lesspipe.sh هو تحسين مخرجات less. يعتمد اختيار القواعد المطبقة لتعديل المخرجات على محتويات الملف. يُراعى امتداد الملف فقط كملاذ أخير. عادةً يُستدعى lesspipe.sh كمرشح إدخال لـ less.

بمساعدة هذا المرشح، يعرض less المحتويات غير المضغوطة للملفات المضغوطة (gzip, bzip2, compress, zstd, lz4, lzip, xz, lzma, zlib أو brotli). للملفات التي تحتوي على أرشيفات وأدلة، يُعرض جدول محتويات (tar, ar, zip, 7-zip, rar, jar, cpio, rpm, deb ms-cabinet, iso, dmg, appimage وصيغ snap). تُعاد تنسيق العديد من الملفات الأخرى للعرض. يتضمن ذلك صيغ pdf, dvi, markdown, Office (MS و Openoffice)، وصيغ NetCDF, matlab, device tree blob, html, xml وصيغ الوسائط (صورة، صوت وفيديو). يتطلب هذا تثبيت برامج مساعدة.

يمكن أيضًا تطبيق المرشح بشكل متكرر لاستخراج وعرض الملفات في الأرشيفات أثناء التشغيل. يعمل هذا حتى عمق 6 حيث يُعتبر تطبيق خوارزمية فك الضغط مستوى منفصلًا.

إذا أبلغت أداة الملف عن نص بترميز مختلف عن المستخدم في الطرفية، يُحول النص باستخدام iconv إلى الترميز المبدئي. يفترض هذا أن أمر file يحصل على ترميز الملف بشكل صحيح، وهو ما قد يكون خاطئًا في بعض الحالات. يؤدي إلحاق نقطتين باسم الملف إلى منع التحويل.

عند استخدام البرامج git أو vim أو mutt، يمكن تمكينها لقراءة الملفات غير النصية باستخدام lesspipe.sh. هذا موصوف في الويكي على https://github.com/wofr06/lesspipe/wiki.

تفعيل المرشح
يُستدعى المرشح من less بشرط ضبط المتغير البيئي LESSOPEN بشكل صحيح. للأصداف المشابهة لـ ksh (bash, zsh)، الأمر
    LESSOPEN="|lesspipe.sh %s"; export LESSOPEN
يفعل المرشح لـ less. استخدم المسار الكامل إذا لم يكن lesspipe.sh في مسار البحث. يمكن أيضًا عرض الأمر لضبط LESSOPEN باستدعاء lesspipe.sh بدون وسائط. يمكن استخدام هذا حتى لضبط LESSOPEN مباشرة:
    eval `lesspipe.sh`
    (bash) or
    lesspipe.sh|source /dev/stdin
    (zsh)
تعمل الأوامر أعلاه فقط بالطريقة الموصوفة إذا كان اسم الملف هو lesspipe.sh. إذا تم تثبيته باسم مختلف، فإن استدعاءه بدون وسيطة يعمل كمرشح مع ضبط LESSQUIET وتوقع إدخال من STDIN.

بعد ضبط المتغير البيئي كما هو موصوف أعلاه، يعرض less معلومات نصية لمجموعة واسعة من صيغ الملفات.

لا يُستدعى المرشح عادةً إذا تم توجيه الإدخال إلى less كما في
    cat somefile | less
كما هو موصوف في دليل less، يمكن فرض الترشيح في أنبوب ببدء LESSOPEN بالأحرف |-.

إذا فشلت الأوامر داخل lesspipe.sh، في بعض الحالات تُعرض رسائل الخطأ، هذا يُعتبر سلوكًا معيبًا ويجب الإبلاغ عنه.

لقمع الرسائل غير الرسمية في السطر الأول من مخرجات المرشح، يمكن ضبط المتغير البيئي LESSQUIET إلى قيمة غير فارغة.

لفصل المرشح مؤقتًا، يمكن إلحاق نقطتين باسم الملف. إذا كان اسم الملف يحتوي على نقطتين، فيجب استخدام علامة يساوي بدلاً من ذلك.

ملفات HTML و XML و Perl POD
تُعرض الملفات بصيغة html و perl pod دائمًا. لكن في بعض الأحيان يجب عرض المحتويات الأصلية للملف بدلاً من ذلك. كما ذُكر سابقًا، يمكن تحقيق ذلك بإلحاق نقطتين باسم الملف. إذا تبعه نوع الملف الصحيح (html، pod)، يمكن تلوين المخرجات (انظر أيضًا القسم أدناه).

    مثال: less index.html:html

إذا تم تثبيت الثنائي xmq، يُعرض xml بشكل مختلف، بحيث يُتعرف على بنية xml بشكل أفضل. يُحقق عرض مماثل لمحتويات html باستخدام xmq بإلحاق نقطتين باسم الملف. للحصول على محتويات ملف html الأصلية، يلزم نقطتان في هذه الحالة.

تلوين المخرجات
المرشح قادر على إجراء تمييز نحوي لمجموعة واسعة من أنواع الملفات. إذا تم تثبيته، يُستخدم nvimpager لتلوين المخرجات. إذا لم يكن، تُجرب bat/batcat و pygmentize و e2ansi-cat و source-highlight و vimcolor و code2color بدورها. لـ bat/batcat، يُضبط السمة إلى ansi والنمط إلى plain الذي يقترب من المخرجات غير المرشحة لـ less. يمكن تغيير هذه الإعدادات في ~/.config/bat/config أو بواسطة المتغيرات البيئية BAT_STYLE و BAT_THEME.

يمكن تلوين محتويات ملفات السجل إذا تم تثبيت برنامج tspin وتم إلحاق السلسلة ":log" باسم الملف أو كان امتداد الملف هو "log".

بين الملونات، يمكن فرض مفضل للتلوين بضبط المتغير البيئي LESSCOLORIZER إلى اسم الملون. لـ pygmentize و bat/batcat، يُسمح بإعدادات خيارات مقيدة كما يلي:
    LESSCOLORIZER='pygmentize -O style=foo' # -P allowed as well
    LESSCOLORIZER='bat --style=foo --theme=bar' # default: theme=ansi, style=plain
يُفعّل تظليل الصياغة إذا وُجد متغير البيئة LESS واحتوى على الخيار -R أو استُدعي less بهذا الخيار. يضمن هذا تحويل تسلسلات الهروب إلى ألوان دون تشويه العرض. لا يُوصى باستخدام الخيار -r، لأن تخطيط الشاشة قد يكون خاطئًا إذا وُجدت أسطر طويلة في المخرجات.

يمكن إيقاف تظليل الصياغة بإلحاق نقطتين بعد اسم الملف، إذا كانت المخرجات ملونة. إذا اختيرت لغة خاطئة لتظليل الصياغة، فيمكن فرض لغة أخرى بإلحاق نقطتين ولاحقة باسم الملف. يمكن طباعة قائمة اللواحق واللغات المدعومة باستخدام أوامر الملون التالية:
    bat --list-languages
    batcat --list-languages
    pygmentize -L lexers
    M-x -mode [TAB] within emacs
    source-highlight --lang-list
    code2color -h
    vimcolor -L (both for vimcolor and nvimpager)

في أنبوب لا يمكن استخدام تلك الطريقة. كمخرج يمكن إضافة وسيطة أخيرة تُفحص بواسطة lesspipe.sh. نقطتان مفردة (إلغاء المرشح) أو :extension (فرض لغة) ممكنة كما في مثال
    command that generates c code | less - :c

عند استيفاء شروط تظليل الصياغة، تُلون قوائم الدلائل وقوائم محتويات ملفات tar أيضًا.

بما أن less يُستخدم كمتصفح مبدئي في برامج أخرى (مثل man وgit وperldoc) فقد يُشرك lesspipe.sh ويُغير مخرجات تلك البرامج.

مراقبة الملفات المتنامية
قد تُفقد القدرة على مراقبة الملفات المتنامية (المطلوبة عادة لملفات السجل مثل syslog) (باستخدام أمر F داخل less أو استدعاء less بالخيار +F) إذا خزّن lesspipe.sh الإدخال في ملف مؤقت لمزيد من المعالجة. يمكن إصلاح ذلك بإضافة نقطتين كوسيطة أخيرة لـ less مثل
    less /var/log/syslog :
أو إذا بدأ LESSOPEN بـ |- واستُدعي less في أنبوب
    cat /var/log/syslog | less +F - :

استخدام متقدم
تسمح لك هذه النسخة من lesspipe.sh بعرض ملفات فردية محتواة في أرشيف ملفات، والذي قد يكون هو نفسه محتوى في أرشيف آخر.

الترميز لعرض الملفات في أرشيفات متعددة الملفات هو
    less archive_file:contained_file
أو حتى
    less super_archive:archive_file:contained_file
لعرض آخر ملف في السلسلة بصيغة خام، يجب إلحاق نقطتين (:) باسم الملف. إذا احتوى على نقطتين، فيجب استخدام حرف الفاصل البديل علامة المساواة (=).

مرة أخرى، لا تعمل هذه الطريقة لاستخراج وعرض الملفات إذا استُدعي less في أنبوب مخرجات وبدأ LESSOPEN بالحرفين |-. كما هو الحال مع تظليل الصياغة، الحل هو استخدام وسيطة ثانية تبدأ بنقطتين. عندها يُكتب الأمر أعلاه كالتالي
    cat super_archive | less - :archive:contained_file

آلية الإكمال لمحتويات الأرشيف
باستخدام ملف lesscomplete المقدم (لـ zsh وbash) والملفات _less (لـ zsh) وless (لـ bash) المولدة أثناء التثبيت، يمكن تحقيق إكمال بعلامة التبويب للملفات في الأرشيفات. إدخال نقطتين (:) أو علامة مساواة (=) بعد اسم ملف أرشيف ثم الضغط على مفتاح التبويب يُشغل آلية الإكمال. يعمل هذا أيضًا في الأرشيفات المتسلسلة. تُثبت الملفات المطلوبة لخوارزمية الإكمال في الدلائل وفقًا للخيارات المتخذة أثناء التثبيت (نص configure). يجب أن يكون ملف lesscomplete في أحد الدلائل المدرجة في $PATH والدالة _less لـ zsh في دليل مدرج بواسطة $fpath. يجب استيراد ملف less مع تعليمات الإكمال لـ bash داخل نص تهيئة bash، مثل ~/.bashrc. يمكن إضافة دلائل جديدة مثل ~/scripts و~/.fpath (لـ zsh) باستخدام الأوامر
    PATH=~/scripts:$PATH # (lesspipe.sh, less) وfpath=(~/.fpath $fpath) # (_less، zsh فقط)

في zsh، يجب استدعاء compinit وتعيين خيار menucomplete إذا لم يُفعل بعد. يمكن تحقيق ذلك بالأوامر
    autoload compinit
    compinit -Uz
    setopt menucomplete

في bash، يجب تثبيت bash-completion (عادة حزمة بهذا الاسم)

الترشيح المعرف من قبل المستخدم
يمكن استبدال أو تحسين ترشيح lesspipe.sh بواسطة برنامج معرف من قبل المستخدم. يجب أن يُسمى هذا البرنامج إما .lessfilter (ويوضع في الدليل الرئيسي للمستخدم)، أو lessfilter (ويكون قابلاً للوصول من دليل مذكور في $PATH). يجب أن يكون قابلاً للتنفيذ وينتهي برمز خروج 0 إذا تم الترشيح داخل هذا السكريبت. وإلا، فإن رمز الخروج غير الصفري يعني أن الترشيح يُترك لـ lesspipe.sh.

يمكن استخدام هذه الآلية لإضافة ترشيح لتنسيقات جديدة أو مثلاً تثبيط الترشيح لأنواع ملفات معينة. يمكن أن يبدو نموذج .lessfilter كالتالي:
    #!/usr/bin/env bash
    case $1 in
    *.md|*.MD|*.mkd|*.markdown|*.rst)
    # if the python module rich.markdown is not found then
    # the exit code is not null and lesspipe.sh is called
    python3 -m rich.markdown -c $1 ;;
    *.html|*.htm)
    # call your favorite html beautifier, cat -b is just a boring example
    cat -b $1 ;;
    *)
    exit 1;;
    esac

المؤلف
Wolfgang Friebel

التبليغ عن الأخطاء
أبلغ عن الأخطاء إلى <wp.friebel AT gmail DOT com>.

حقوق النسخ
حقوق النشر © 2005-2026 Wolfgang Friebel
هذا برنامج حر؛ انظر المصدر لشروط النسخ. لا يوجد أي ضمان؛ ولا حتى ضمان قابلية التسويق أو الملاءمة لغرض معين.

انظر أيضًا
less(1)

يمكن أيضًا العثور على وصف لـ lesspipe.sh في ملف README المضمن في حزمة الشيفرة المصدرية

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.