You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为grep结果指定内容着色?仅高亮120$部分

问题

使用命令 grep -niE smith /home/user/docs/* 得到结果:/home/user/docs/bils.pdf:120$:Smith,需要仅为其中的「120$」添加颜色,其余内容不变,请问是否可行?

解决方案

当然可行,你可以通过管道结合文本处理工具,给指定内容添加ANSI转义序列实现颜色高亮。以下是两种实用方案:

方案一:用sed精准匹配目标内容

直接针对结果中的120$进行替换,添加红色高亮(可修改颜色码更换其他颜色):

grep -niE smith /home/user/docs/* | sed 's/120$/\x1b[31m&\x1b[0m/'
  • \x1b[31m:ANSI红色前景色起始标记
  • &:代表匹配到的120$原内容
  • \x1b[0m:重置颜色,避免后续文本继承高亮

方案二:用awk匹配通用数字+$模式

如果需要高亮所有数字+$格式的内容(而非仅120$),可以用awk实现更通用的处理:

grep -niE smith /home/user/docs/* | awk '{gsub(/[0-9]+\$/, "\033[32m&\033[0m"); print}'
  • /[0-9]+\$/:匹配一个或多个数字后跟$的模式
  • \033[32m:ANSI绿色前景色起始标记(33=黄色、34=蓝色,可按需替换)
  • gsub:全局替换函数,会处理行内所有符合模式的内容

内容的提问来源于stack exchange,提问作者Lilia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 04:14:59