将彩色文本打印到文件

时间:2016-09-14 15:37:32

标签: perl text output ansi-colors

我正在尝试将彩色文本打印到文件中。我知道文本文件不能包含彩色文本。我想保留下面脚本的输出颜色。

此脚本显然以彩色打印到终端。

#!/usr/bin/perl 

use strict;
use warnings;

my $inputfile = $ARGV[0];

open (INPUTFILE, "<", $inputfile) or die $!;

my @data = <INPUTFILE>;

use Term::ANSIColor;
###
for (my $line = 0; $line <= $#data; ++$line) {  
   chomp $data[$line];
   if ($data[$line] !~ m/PDBID/) {   file.
   my @splitfast = (split//, $data[$line]);
      for (@splitfast) {
        #print "$_ \n"; Debug
        if ($_ =~ m/R|H|K/) {
           print color ('red');
           print "$_";
           print color('reset');
        } elsif ($_ =~ m/D|E/) {
           print color ('blue');
           print "$_";
           print color('reset');
        } else {
        print "$_";
        }


      }


 }

INPUT:

GQDLKMDCKEYNYDKS

终端输出:

我得到与INPUT状态完全相同的行,但所有的R,H和K字母都是红色,D和E字母是蓝色。

普通旧文本文件中的OUTPUT:

GQ^[[34mD^[[0mL^[[31mK^[[0mM^[[34mD^[[0mC^[[31mK^[[0m^[[34mE^[[0mYNY^[[34mD^[[0m^[[31mK^[[0mS

请求的解决方案:

我正在寻找一种我可以写入的文件类型,它只是保存输出颜色或将这种类型的输出转换为乳胶或其他东西的方法。如果有一种更简单的方法来做我正在做的事情,我很乐意尝试一下!

0 个答案:

没有答案