通过Sed命令,在Shell终端中高亮指定行
需求
在执行某些 Shell 命令时,需要将特定的行以高亮方式显示,以提醒操作人员关注,例如
打印文件系统的占用情况时,需要真正关注的是 /
目录的空间使用情况(因为我系统就分了 /
和 /home
两个分区)
原始数据如下图所示:
方案
知识点:
-
通过管道符将磁盘使用的结果传递给 sed 命令取处理;
-
使用正则动态匹配需要高亮的行;
-
sed 中对于颜色的处理需要使用 16 进制。即,颜色标识应以
\x1b[
开头; -
参考文档:
初步验证可用的命令:
df -hl | cat |sed -e "s/\(\/dev\/.*root.*\)/\x1b[44;37m\1 <------ Watch out this line\!\!\! \x1b[0m/"