Для CentOS 6.10 следующий файл содержит конфигурацию цвета для SETCOLOR _SUCCESS, SETCOLOR _FAILURE,...
/etc/sysconfig/init
Пример:
# color => new RH6.0 bootup
# verbose => old-style bootup
# anything else => new style bootup without ANSI colors or positioning
BOOTUP=color
# column to start "[ OK ]" label in
RES_COL=60
# terminal sequence to move to that column. You could change this
# to something like "tput hpa ${RES_COL}" if your terminal supports it
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
# terminal sequence to set color to a 'success' color (currently: green)
SETCOLOR_SUCCESS="echo -en \\033[0;32m"
# terminal sequence to set color to a 'failure' color (currently: red)
SETCOLOR_FAILURE="echo -en \\033[0;31m"
# terminal sequence to set color to a 'warning' color (currently: yellow)
SETCOLOR_WARNING="echo -en \\033[0;33m"
# terminal sequence to reset to the default color.
SETCOLOR_NORMAL="echo -en \\033[0;39m"
Возможно, вы сможете использовать информацию и имена, чтобы найти нужные файлы в вашей системе:)
Это, вероятно, примерно в 1 000 000 раз медленнее, чем perl
, но вот версия awk
только для того, чтобы испытать ее. Но в любом случае
awk -v gzin="Foo" -v gzout="Bar" '
BEGIN {FS=gzin;
cb=(substr(gzin,1,1)~/[a-z]/)?"[a-z]$":"[A-Z]$"
ca=(substr(gzin,length(gzin)-1,1)~/[a-z]/)?"^[a-z]":"^[A-Z]"
}
{printf $1; for (f=2; f<=NF; f++) printf ("%s%s", ((($(f-1) ~ cb) || ( $(f) ~ ca ))?gzin:gzout), $f) ;
print ""}' file
И это даже соответствует комментариям
ifootest // not replace this foo
Ifootest // not replace this foo
IbarTest // << replace this bar
I bar Test // << replace this bar
I_bar_Test // << replace this bar
и с-v gzin="Foo" -v gzout="Bar"
IFootest // not replace
IFooTest // not replace
iBarTest // replace
i Bar Test //replace
I_Bar_Test // replace
Прохождение
awk -v gzin="Foo" -v gzout="Bar" '
Загрузите совпадение gzin
и замену gzout
как переменные
BEGIN {FS=gzin;
Разделить наgzin
cb=(substr(gzin,1,1)~/[a-z]/)?"[a-z]$":"[A-Z]$"
Проверьте регистр первого символа gzin
и настройте регулярное выражение, соответствующее ему
ca=(substr(gzin,length(gzin)-1,1)~/[a-z]/)?"^[a-z]":"^[A-Z]"
То же самое с последним символом
}
{printf $1; for (f=2; f<=NF; f++) printf ("%s%s", ((($(f-1) ~ cb) || ( $(f) ~ ca ))?gzin:gzout), $f) ;
Перебрать поля, проверяя предыдущее и текущее поля, и поместить между ними соответствующее значение
print ""}' file
Конец каждой строки
PS Кажется, я повредил себе мозг