supercat
लगता है कि तुम क्या देख रहे हो।
पैकेज: सुपरकैट
विवरण-एन: प्रोग्राम जो टर्मिनलों और HTML के लिए पाठ को रंगीन करता है
सुपरकैट एक ऐसा कार्यक्रम है जो नियमित मिलान के आधार पर पाठ को रंग देता है
भाव / तार / अक्षर। Supercat html आउटपुट को भी सपोर्ट करता है
मानक ASCII पाठ के रूप में। कुछ टेक्स्ट-कलरिंग कार्यक्रमों के विपरीत जो कि
मौजूद है, सुपरकैट के लिए आपको प्रोग्रामर होने की आवश्यकता नहीं है
रंग बनाने के नियम।
मुखपृष्ठ: http://supercat.nosredna.net/
यह बताने का कोई तरीका प्रतीत नहीं होता है कि कमांड लाइन पर क्या करना है, आपको एक विन्यास फाइल निर्दिष्ट करनी होगी।
मुझे याद है कि 'हिलिट' या 'एचएल' नामक एक कार्यक्रम हुआ करता था grep --colour
, जो एक पैटर्न से मेल खाने वाले पाठ को हाइलाइट करता था (जैसे , लेकिन गैर-मिलान लाइनों को भी प्रदर्शित करता है), लेकिन जब मैंने इसे खोजा तो मुझे यह नहीं मिला।
अंत में, जीएनयू grep
का उपयोग पैटर्न को उजागर करने के लिए किया जा सकता है - लेकिन केवल एक रंग का उपयोग किया जा सकता है (यानी आप हरे रंग में पास नहीं हो सकते हैं और लाल रंग में विफल हो सकते हैं, दोनों एक ही रंग के साथ हाइलाइट किए जाएंगे)।
अपने डेटा को कुछ इस तरह से पाइप करें:
egrep --color "\b(PASS|FAIL)\b|$"
यह उदाहरण egrep (aka grep -E
) का उपयोग करता है , लेकिन -G
मूल regexp, -F
फिक्स्ड-स्ट्रिंग और -P
PCRE भी काम करता है।
सभी मैचों पर प्रकाश डाला जाएगा। डिफ़ॉल्ट लाल है, या GREP_COLOR env var सेट करें।
इस काम की कुंजी यह है कि |$
पैटर्न में अंतिम अंत-लाइन से मेल खाता है (अर्थात सभी लाइनें मेल खाती हैं) इसलिए सभी लाइनें प्रदर्शित की जाएंगी (लेकिन रंगीन नहीं)।
\b
शब्द सीमा मार्करों इतना है कि यह मेल खाता है जैसे असफल नहीं बल्कि असफलता है। वे आवश्यक नहीं हैं, इसलिए यदि आप आंशिक शब्दों से मेल खाना चाहते हैं तो उन्हें हटा दें।
यहाँ सुपरकैट के लिए उदाहरण रैपर स्क्रिप्ट है जो मैंने कल लिखा था। यह काम करता है, लेकिन इसे लिखने में, मुझे पता चला कि सुपरकैट में केस-असंवेदनशील खोजों के लिए कोई विकल्प नहीं है। IMO, जो प्रोग्राम को काफी कम उपयोगी बनाता है। हालाँकि, इसने स्क्रिप्ट को बहुत सरल कर दिया क्योंकि मुझे '-i' विकल्प लिखना नहीं था :)
#! /bin/bash
# Requires: tempfile from debian-utils, getopt from util-linux, and supercat
SCRIPTNAME=$(basename $0)
CFGFILE=$(tempfile -p spc)
usage() {
cat <<__EOF__
Highlight regexp patterns found on stdin or files specified on command
line with specified colours.
Usage: $SCRIPTNAME [ --colour "pattern" ...] [FILE]
Options:
-k,--black regexp
-r,--red regexp
-g,--green regexp
-y,--yellow regexp
-b,--blue regexp
-m,--magenta regexp
-c,--cyan regexp
-w,--white regexp
Example:
run-script.sh | $SCRIPTNAME --green PASS --red FAIL
__EOF__
exit 0
}
# Format definition from the spc man page:
#1234567890123456789012345678901234567890123456789012345
#HTML Color Name Col A N T RE / String / Characters
FMT="%-20s %3s %1s %1s %1s (%s)\n"
add_color_to_config() {
COLOR="$1"
PATTERN="$2"
printf "$FMT" "$COLOR" "$COLOR" - 0 r "$PATTERN" >> "$CFGFILE"
}
# uses the "getopt" program from util-linux, which supports long
# options. The "getopts" built-in to bash does not.
TEMP=$(getopt \
-o 'hk:r:g:y:b:m:c:w:' \
-l 'help,black:,red:,green:,yellow:,blue:,magenta:,cyan:,white:' \
-n "$0" -- "$@")
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
eval set -- "$TEMP"
while true ; do
case "$1" in
-k|--bla*) add_color_to_config blk "$2" ; shift 2 ;;
-r|--red) add_color_to_config red "$2" ; shift 2 ;;
-g|--gre*) add_color_to_config grn "$2" ; shift 2 ;;
-y|--yel*) add_color_to_config yel "$2" ; shift 2 ;;
-b|--blu*) add_color_to_config blu "$2" ; shift 2 ;;
-m|--mag*) add_color_to_config mag "$2" ; shift 2 ;;
-c|--cya*) add_color_to_config cya "$2" ; shift 2 ;;
-w|--whi*) add_color_to_config whi "$2" ; shift 2 ;;
-h|--hel*) usage ; exit 0 ;;
--) shift ; break ;;
*) echo 'Unknown option!' ; exit 1 ;;
esac
done
spc -R -c "$CFGFILE" "$@"
rm -f "$CFGFILE"