أستخدم خيار - اللون من grep كثيرًا ، لكنني غالباً ما أستخدم أقل. كيف يمكنني توجيه نتائج grep إلى أقل مع الحفاظ على التلوين. (أو هل هذا ممكن؟)
grep "search-string" -R * --colour | less
EDIT:
أنا أبحث عن حل مباشر أو أي شيء معادل لذلك.
عندما تقوم ببساطة بتشغيل grep --color
، فهذا يعني grep --color=auto
الذي يكتشف ما إذا كان الإخراج هو محطة وإذا كان الأمر كذلك يمكّن الألوان. ومع ذلك ، عندما يكشف عن أنبوب فإنه يعطل التلوين. الأمر التالي:
grep --color=always -R "search string" * | less
ستقوم دائمًا بتمكين التلوين وتجاوز الاكتشاف التلقائي ، وستحصل على تمييز اللون بـ less
.
التحرير: على الرغم من أن استخدام less
يعمل فقط بالنسبة لي ، فربما يتطلب الإصدار الأقدم علامة -R
للتعامل مع الألوان ، كما هو مقترح.
يمكنك وضع هذا في ملف .bashrc
الخاص بك:
export GREP_OPTIONS="--color=always"
أو إنشاء اسم مستعار مثل هذا:
alias grepc="grep --color=always"
وستحتاج إلى استخدام خيار -R
لـ less
، كما أشار إلى ذلك
في مثل هذه الحالة ، أفضل إنشاء ملفات sh الصغيرة ووضعها على /usr/local/bin
.
عادةً ما أستخدم grep
بطريقة العودية على pwd
، لذلك هذا هو نصي الشخصي:
#!/bin/sh
grep --color=always -r "[email protected]" . | less -R
وبعد ذلك قمت بنسخها على أنها /usr/local/bin/g
(نعم ، استخدمها كثيرًا)
لا اسم مستعار "grep" ، من الأفضل أن يكون الاسم المستعار "أقل" الذي لا تستخدمه القذائف مطلقًا. في .bashrc
فقط ضع: alias less="less -r"
.
أحتاج إلى الجري
grep --color=always -R "search string" * | less - r
مع علامة - r بعد أقل ، من أجل هذا لتشغيل.