supercat
aradığınızı yapıyor gibi görünüyor.
Paket: supercat
Description-tr: terminaller ve HTML için metni renklendiren program
Supercat, düzenli olarak eşleştirmeye dayalı olarak metni renklendiren bir programdır.
ifadeleri / dizeleri / karakter. Supercat html çıktısını da destekler
standart ASCII metni olarak. Bazı metin renklendirme programlarının aksine
Supercat, programcı olmanızı gerektirmez
renklendirme kuralları yapabilir.
Ana Sayfa: http://supercat.nosredna.net/
Komut satırında ne renklendirileceğini söylemenin bir yolu yok gibi görünüyor, bir yapılandırma dosyası belirtmelisiniz.
Bir desenle eşleşen metnin vurgulandığı 'hilite' veya 'hl' adlı bir program olduğunu hatırlıyorum ( grep --colour
eşleşmeyen satırları da görüntülüyor gibi ), ancak aradığımda bulamadım.
Son olarak, GNU grep
desenleri vurgulamak için kullanılabilir - ancak yalnızca bir renk kullanılabilir (yani yeşil renkte PASS ve kırmızı renkte BAŞARISIZ olamaz, her ikisi de aynı renkle vurgulanır).
Verilerinizi aşağıdaki gibi bir şeye aktarın:
egrep --color "\b(PASS|FAIL)\b|$"
Bu örnek egrep (aka grep -E
) kullanır , ancak -G
temel regexp, -F
sabit dize ve -P
PCRE de çalışır.
Tüm maçlar vurgulanacaktır. Varsayılan kırmızıdır veya GREP_COLOR env var.
Bu çalışmanın anahtarı |$
, desendeki finalin satır sonu ile eşleşmesidir (yani tüm satırlar eşleşir), böylece tüm satırlar görüntülenir (ancak renklendirilmez).
\b
O örn FAIL ancak FAILURE eşleşecek şekilde sözcük sınırlama göstergelerdir. bunlar gerekli değildir, bu nedenle kısmi kelimeleri eşleştirmek istiyorsanız bunları kaldırın.
İşte dün yazdığım supercat için örnek sarıcı komut dosyası. Çalışıyor, ancak yazarken, supercat'in büyük / küçük harfe duyarlı olmayan aramalar için herhangi bir seçeneği olmadığını keşfettim. IMO, programı önemli ölçüde daha az kullanışlı hale getirir. Ancak, '-i' seçeneği yazmak zorunda olmadığım için komut dosyasını büyük ölçüde basitleştirdi :)
#! /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"