【03】 linux 终端下高亮输出perl
2016-12-23 05:32
239 查看
经常使用linux 的人会发现,有很多命令的输出结果都带有一定的格式,比如说颜色高亮显示,背景颜色等。 那么在编写perl 脚本的时候,是否也能将perl 的输出进行格式化处理呢? 答案是肯定的,而且非常简单。
1. perl 支持的输出样式:
1. 测试脚本: test-format
#!/usr/bin/perl
#打印颜色必须引入的模块和设置
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
print "\n perl 支持的颜色类型 \n";
print BOLD "BOLD\n";
print CLEAR "CLEAR\n";
print DARK "DARK\n";
print UNDERLINE "UNDERLINE\n";
print UNDERSCORE "UNDERSCOPRE\n";
print BLINK "BLINK\n";
print REVERSE "REVERSE\n";
print CONCEALED "CONCELED\n";
print BLACK "BLACK\n";
print RED "RED\n";
print GREEN "GREEN\n";
print YELLOW "YELLOW\n";
print BLUE "BLUE\n";
print MAGENTA "MAGENTA\n";
print CYAN "CYAN\n";
print WHITE "WHITE\n";
print ON_BLACK "ON_BLACK\n";
print ON_RED "ON_RED\n";
print ON_GREEN "ON_GREEN\n";
print ON_YELLOW "ON_YELLOW\n";
print ON_BLUE "ON_BLUE\n";
print ON_MAGENTA "ON_MAGENTA\n";
print ON_CYAN "ON_CYAN\n";
print ON_WHITE "ON_WHITE\n";
2. 输出结果:
2. perl 格式化字符串中关键字
1. 测试程序: test-color
#!/usr/bin/perl
#打印颜色必须引入的模块和设置
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
&print_color("hello,world,hello,java,hello,js\n","java","hell");
#desc 输出有颜色的字符串
#para1 接收至少两个参数以上,第一个参数为要格式化的字符串,之后的参数为要使用颜色的字符串
sub print_color(){
die "print_color 方法需要至少两个参数" if @_ <2;
#获取要格式化颜色的字符串
my $line = shift @_;
#获取要高亮的字符串数组
@patterns = @_;
#获取要高亮显示的字符串数组,拼接正则模式
my $spectors = (shift @_) . '+';
foreach(@_){
$spectors .= "|$_+";
}
#按正则模式进行分组
my @arrays = split(/($spectors)/, $line);
#输出结果
for my $item(@arrays){
#直接使用@patterns 数组反向匹配,数组内插时,每个字符串直接会有空格
if("@patterns" =~ $item){
print BOLD RED $item;
} else {
print $item;
}
}
}
2. 运行结果:
1. perl 支持的输出样式:
1. 测试脚本: test-format
#!/usr/bin/perl
#打印颜色必须引入的模块和设置
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
print "\n perl 支持的颜色类型 \n";
print BOLD "BOLD\n";
print CLEAR "CLEAR\n";
print DARK "DARK\n";
print UNDERLINE "UNDERLINE\n";
print UNDERSCORE "UNDERSCOPRE\n";
print BLINK "BLINK\n";
print REVERSE "REVERSE\n";
print CONCEALED "CONCELED\n";
print BLACK "BLACK\n";
print RED "RED\n";
print GREEN "GREEN\n";
print YELLOW "YELLOW\n";
print BLUE "BLUE\n";
print MAGENTA "MAGENTA\n";
print CYAN "CYAN\n";
print WHITE "WHITE\n";
print ON_BLACK "ON_BLACK\n";
print ON_RED "ON_RED\n";
print ON_GREEN "ON_GREEN\n";
print ON_YELLOW "ON_YELLOW\n";
print ON_BLUE "ON_BLUE\n";
print ON_MAGENTA "ON_MAGENTA\n";
print ON_CYAN "ON_CYAN\n";
print ON_WHITE "ON_WHITE\n";
2. 输出结果:
2. perl 格式化字符串中关键字
1. 测试程序: test-color
#!/usr/bin/perl
#打印颜色必须引入的模块和设置
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
&print_color("hello,world,hello,java,hello,js\n","java","hell");
#desc 输出有颜色的字符串
#para1 接收至少两个参数以上,第一个参数为要格式化的字符串,之后的参数为要使用颜色的字符串
sub print_color(){
die "print_color 方法需要至少两个参数" if @_ <2;
#获取要格式化颜色的字符串
my $line = shift @_;
#获取要高亮的字符串数组
@patterns = @_;
#获取要高亮显示的字符串数组,拼接正则模式
my $spectors = (shift @_) . '+';
foreach(@_){
$spectors .= "|$_+";
}
#按正则模式进行分组
my @arrays = split(/($spectors)/, $line);
#输出结果
for my $item(@arrays){
#直接使用@patterns 数组反向匹配,数组内插时,每个字符串直接会有空格
if("@patterns" =~ $item){
print BOLD RED $item;
} else {
print $item;
}
}
}
2. 运行结果:
相关文章推荐
- 【linux/perl】终端运行的程序怎么屏蔽错误信息的输出?
- [转载]linux终端输出带有颜色的字体
- linux终端中输出彩色字体(C/SHELL)
- Linux终端彩色字符的输出方法
- 如何在Linux终端里用Shell和C输出带颜色的文字
- 如何在Linux终端里用Shell和C输出带颜色的文字
- Linux终端输出颜色控制
- linux下实现自动后台运行,脱离输出到终端
- php在linux终端输出带颜色
- linux下printf终端打印输出颜色控制
- 复制linux终端下的输出到剪贴板
- 如何在Linux终端里用Shell和C输出带颜色的文字
- linux 终端高亮显示关键字
- Linux终端彩色字符的输出方法
- linux终端输出颜色
- linux下获取在终端中输出的数据
- Linux终端颜色输出
- linux终端中输出彩色字体
- 在linux终端下输出带颜色的字体
- Linux中记录终端(Terminal)输出到文本文件