我使用优秀软件包icdiff
(https://github.com/jeffkaufman/icdiff)的输出来检查更新的文件迭代之间的差异。我想解析一下这些重大差异。从包--help
开始,我无法看到任何内置选项(并且在github问题页面上我已经发布并且已经发布了'以查看它是否可以添加或我错过了什么)。
这让我想知道一个hacky解决方案是否可以用它们的颜色来解析线条,因为它们也按照差异的严重程度进行了颜色编码。在bash
中这是否完全可以? (也欢迎其他方法!)
这是输出的一个示例(我只能在这里添加图片,因为标记不会显示颜色)。我想获得整条线为红色/绿色的线条。原谅一些屏幕包装,我的显示器不够宽,文字已经够小了。
答案 0 :(得分:1)
你可以在ANSI转义序列上进行grep,例如(红色为31):
grep '^[\[31m' # make the escape character (^[) by typing ctrl+v ESC
但是如果没有发送到终端,你需要确保你的输出保持颜色:(当输出不是终端时,许多程序将输出B& W - 你可以用较少的检查,这将显示你的逃脱序列)
答案 1 :(得分:1)
使用GNU Grep,例如
pm.playblast(query = True, format = 'qt', compression = True)
以红色提取文字,
grep -Po $'\e\[31m\K.*(?=\e\[\d+m)'
保持左侧外线比赛,就像一个后卫\K
lookahead断言0长度匹配