细节:
我正在使用 tail -f 读取传入流中的文件
我可以使用 sed 在流中查找和替换字符/字符串,例如:
tail -f a.log | sed 's/'`echo -e "\xnn"`'/'`echo "$(tput setaf 1)|sep|$(tput sgr0)"`'/g'
以上实现的是为分隔符字符串提供了一个清晰的视觉标记(在这种情况下是不可打印的十六进制字符 nn,例如 nn 可能是 05,将其替换为红色(在这种情况下)颜色(通过 tput ) 字符串 |sep|。
所以我得到类似的东西
field **|sep|** field **|sep|** field **|sep|**
我想要的是
field **|sep#1|** field **|sep#2|** field **|sep#3|**
因此,要求是在替换字符串中将第 n 个匹配标记为这样(|sepn| 其中 n 是遇到的匹配数)