如何根据某些搜索模式在 unix 中为文本文件着色?

Posted

技术标签:

【中文标题】如何根据某些搜索模式在 unix 中为文本文件着色?【英文标题】:How to color a text file in unix based on some search pattern? 【发布时间】:2017-08-14 16:20:45 【问题描述】:

我在 unix 目录中有一个 .txt 文件,我想根据某种模式为特定行着色。请让我知道我应该如何完成这项任务。

另外,如果有任何关于“文本文件中数据着色”的文档可以参考,请告诉我

【问题讨论】:

您在这里漏掉了一点:txt 文件中没有任何颜色信息。您可以使用工具来匹配颜色。例如见 - ***.com/questions/981601/… 感谢 klashar 的回复..我想重新表述这个问题.. 要求是-“假设我在 unix 中有一个文件,当我“cat”该文件时,我应该看到该文件的某些部分被突出显示”......颜色添加应该是文件的一部分...我需要知道如何为文件中的内容赋予颜色。您附加的链接指定了根据某些搜索模式为我们提供运行时突出显示数据的命令。 恐怕你的reqs不可行。 【参考方案1】:

对您的环境做出许多假设(例如,这可能不起作用,但有时会起作用),您可以将与字符串“foo”匹配的每一行设为红色:

$ RED=$(printf '\033[01;31m')
$ GREEN=$(printf '\033[01;32m')
$ printf 'foo\nbar\n' | sed "/foo/s/^/$RED/; s/\$/$GREEN/"

将模式匹配中的foo 替换为您要匹配的模式,sed 将在行的开头和结尾发出颜色代码以更改显示。在本例中,我将颜色改回绿色。尝试将颜色恢复到以前的状态是很困难的,选择一种颜色比尝试这样做要简单得多。您可以选择不同的颜色代码来匹配您的首选输出。

【讨论】:

以上是关于如何根据某些搜索模式在 unix 中为文本文件着色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中为文本着色

如何在Vim插件输出中为单词着色

如何在D3中为文本div的特定部分着色?

使用 C++ 在控制台中为文本着色

如何在网格视图中为网格单元格着色?

有没有办法在占位符文本 QML 中为特定单词着色?