加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 在xterm中,我可以在不重置当前颜色的情况下关闭粗体或下

发布时间:2020-12-15 20:59:23 所属栏目:安全 来源:网络整理
导读:我正在处理输入(来自像,但限于,ls -la –color的来源)并强调文本的某些部分.我不是逐个字符地处理这些输入,而是使用许多正则表达式,这使得很难跟踪我正在影响的子字符串是已经着色还是以粗体显示.如果我有一个红色的文本块,并且我想强调它的某些部分,我可能
我正在处理输入(来自像,但限于,ls -la –color的来源)并强调文本的某些部分.我不是逐个字符地处理这些输入,而是使用许多正则表达式,这使得很难跟踪我正在影响的子字符串是已经着色还是以粗体显示.如果我有一个红色的文本块,并且我想强调它的某些部分,我可能会做类似的事情:

s/(123)/33[4m133[0m/g

(我的表达要复杂得多.实际上,匹配被提取,自己处理,并进一步细分和分析.这不是可以通过改变我在这里给出的表达式来完成的.)

上面的代码将用[UNDERLINE_START] 123 [FORMAT_RESET]替换123的所有出现次数.不幸的是,重置也会关闭文本的颜色.如果我可以在我想要禁用的时候关闭下划线,那将会给我带来很大的麻烦,但我很确定没有办法做到这一点.谁能告诉我,我错了?

编辑:我可以通过询问来简化问题:如果我想关闭下划线,我可以在不影响当前文本颜色的情况下这样做,因为在我的脚本开始执行之前很久就设置了这种颜色,而我没有一种检测那种颜色的方法?

解决方法

似乎没有人记录它,但在装饰器代码中添加20将关闭它们:

echo -e "33[34;4m" underlined "33[24m" not underlined
  echo -e "33[34;1m" bold "33[2m" not bold
  echo -e "33[34;2m" dark "33[22m" not dark
  echo -e "33[34;7m" inverse "33[27m" not inverse

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读