perl脚本在linux里,只显示带颜色的命令

perl脚本在linux里,只显示带颜色的命令,第1张

对于Linux管理员来说,grep是日常最常用的命令,可以把匹配的字符输出,同样可以输出颜色

# grep --color 'test' /var/log/maillog

无聊练功:用perl 实现grep --color

# vi colorgrep

#!/usr/bin/perl

use Term::ANSIColor

my $test

if (@ARGV != 2){

die "Please use (colorgrep 'some key word' filename)\n"

}

$test = shift @ARGV

while(<>){

if(/$test/i){

print "$`"

print color "bold red"

print "$&"

print color 'reset'

print "$'"

}

}

这里调用了Term::ANSIColor 函数 color 有以下的参数:

clear, reset, dark, bold, underline, underscore, blink, reverse, concealed, black, red, green, yellow, blue, magenta, cyan, white, on_black, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, and on_white

还有以下的简化使用方法

2) use Term::ANSIColor qw(:constants)

如果使用这种方法,可以直接把颜色属性放在要输出的问题前面,从而简化输出步骤。这些颜色属性有:

CLEAR, RESET, BOLD, DARK, UNDERLINE, UNDERSCORE, BLINK, REVERSE, CONCEALED, BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, ON_BLACK, ON_RED, ON_GREEN, ON_YELLOW, ON_BLUE, ON_MAGENTA, ON_CYAN, and ON_WHITE

等。

例如:

print BOLD BLUE ON_WHITE “Text”, RESET, “\n”

如果你打印完之后想清除掉字符串的格式,一定要记得在最后加上一个RESET的属性值。

例如:

use Term::ANSIColor qw(:constants)

print BOLD, BLUE, “This text is in bold blue.\n”, RESET

3) $Term::ANSIColor::AUTORESET = 1

对于2)的方法,如果你不想在每条打印语句后面加上RESET的话,你可以直接把$Term::ANSIColor::AUTORESET的值设为true。这样每次打印完字符,只要你的属性值之间没有逗号,系统将自动帮你清除掉颜色属性。

看一个完整的例子:

use Term::ANSIColor qw(:constants)

$Term::ANSIColor::AUTORESET = 1

print BOLD BLUE “This text is in bold blue.\n”

print “This text is normal.\n”

这三种方法,使用起来各有千秋,可根据要打印的复杂程度选用。

启动 Linux(示例版本为 CentOS 6.6),进入终端。

键入 su,回车,再输入 root 帐户密码(注意密码并不在屏幕上显示),登陆 root 帐户。

键入 cd /usr/share/vim/vim72/colors,回车,进入到相应目录下。

注意:如果你的 Linux 版本不同,其中的 vim72 部分可能略有不可,可以到 /usr/share/vim 目录查看下,目录名一般为 vimXX。

键入 ls,这时可以看到系统中已有的配色方案(扩展名为 .vim 的文件),记下。

二、更改配色方案

键入 exit,退出 root 帐户,回到普通帐户下。

键入 vim ~/.vimrc,回车。注意,vimrc 前面的 . 不能少。

在 vim 中先按 i 键进入编辑模式,然后键入 colorscheme 配色方案名(不含 .vim 扩展名)。例如, colorscheme morning,然后按 esc 键退出编辑模式,再键入 :wq! 保存退出。

现在,我们键入命令 vim 1.cpp 新建一个 1.cpp 文件来测试配色是否已经生效。

注意事项

在 .vimrc 文件中可根据自己的喜好更改为前面查到的任何配色方案。

vim 根据文件扩展名来实施配色。如上示例改为 vim 1(不添加.cpp),则不会有语法高亮。

在vi中输入【:colorscheme darkbule】可以修改vi中的显示主体,其中darkbule可以替换为default、delek等

你说的ls有颜色,可以试下命令:

alias ls

大概会得到:alias ls='ls --color=auto'

能看到ls输出的时候时带参数的。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7332620.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存