1

有没有办法从大文件中提取一些文本并在 Linux BASH shell 中用粗体字母标记?像

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 15G 11G 3.3G 76% /
tmpfs 7.9G 0 7.9G 0% /dev/shm
/dev/sda3 51G 45G 3.8G 93% /home
/dev/sdc1 917G 359G 512G 42% /data

我有上述输出,并且每当系统向我发送有关此 df 输出的邮件时,我都希望 /data 行应以粗体显示。

4

2 回答 2

3

使用 ANSI 转义序列,您可以执行此操作(尽管这取决于终端):

echo -e "\033[1m$(grep '/data' file)\033[0m"

将产生:

/dev/sdc1 917G 359G 512G 42% /data

于 2013-10-16T11:56:53.727 回答
0

Bash 并没有真正的粗体(它确实有明亮的效果,这实际上是等效的)。您可以使用sed插入 bash 控制代码,但如果您不太关心确切的颜色选择,您可以使用

grep --color -E "text match pattern|" mylargefile

让 grep 突出显示。(请参阅Colorized grep -- 查看带有突出显示的匹配项的整个文件以获取替代方案和讨论)

于 2013-10-16T11:53:09.403 回答