相关疑难解决方法(0)

防止手表损坏颜色

我正在更改监控日志文件的工作脚本,以挑选出某些项目并为它们着色。最终输出是多列中的 6 位数字列表。我已经能够~在数字的开头添加一个,并且它不会破坏最终输出中的任何内容,但是它相当丑陋且难以阅读。但是,当我尝试为数字着色时,无论是在前面的 bash 脚本中还是在 perl 脚本中对数据进行最终处理时,彩色文本都会被破坏。

例如,我将放入的原始数字$num

123456
Run Code Online (Sandbox Code Playgroud)

我在 perl 中输入了这个(或者,在 bash 中输入了很多相同的东西):

"\e[1;34m" . $num . "\e[0m"
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

[1;34m123456[0m 
Run Code Online (Sandbox Code Playgroud)

我也试过这个,一个转义版本,但得到同样的东西:

"\x1B[1;34m" . $num . "\x1B[0m"
Run Code Online (Sandbox Code Playgroud)

如果这有所作为,这里是真正的脚本堆栈(一团糟):

  • Perl 调用内部 shell 脚本,然后通过管道传送到grep/ cut/etc。
  • 带有更多cut/etc. 的shell 脚本,然后通过管道传输到 .pl
  • shell 脚本监视输出

也许watch不喜欢颜色呢?

perl不太清楚,所以我想显示我在打印线周围看到的内容不会有什么坏处:

my $format = ("%-8s") x scalar(@{$a[0]});

printf("$format\n", @$_)
Run Code Online (Sandbox Code Playgroud)

colors printf

6
推荐指数
3
解决办法
3120
查看次数

标签 统计

colors ×1

printf ×1