使用 sed 时保留转义序列和颜色
Retain escape sequences and color when using sed
我从一个测试报告器中输出 returns 漂亮的彩色结果,以及我想清除的杂项垃圾。我尝试通过以下方式使用 sed
:
karma start tests/karma.conf.js | sed 's|var.*browserify||'
...去除了垃圾,但也杀死了有色结果。我怎样才能留住他们?
这是 sed 之前的原始输出示例:
^[[1A^[[2KERROR: 'Unhandled promise rejection' /var/folders/xs/wmmjbz4s6mdgcqynwn46qtmr0000gn/T/799ac09c665c85beb20f6d99be27c1cf.browserify?c65c8d7afc187ee2ed8307a171bc8e1511bfb40b:91625:48)
.*
将匹配所有内容,包括颜色代码。
如果您不想匹配它们,请使用更具体的正则表达式,例如字符范围。
对于给定的示例,
/var/folders/xs/wmmjbz4s6mdgcqynwn46qtmr0000gn/T/799ac09c665c85beb20f6d99be27c1cf.browserify
更具体的模式可能是其中之一,使用字符 类:
sed 's|var[^[:cntrl:]]*browserify||'
sed 's|var[[:alnum:]./]*browserify||'
我会使用后者,因为它可以消除跳过完整路径名的可能性(如果在一行中给出了多个路径名)。
我从一个测试报告器中输出 returns 漂亮的彩色结果,以及我想清除的杂项垃圾。我尝试通过以下方式使用 sed
:
karma start tests/karma.conf.js | sed 's|var.*browserify||'
...去除了垃圾,但也杀死了有色结果。我怎样才能留住他们?
这是 sed 之前的原始输出示例:
^[[1A^[[2KERROR: 'Unhandled promise rejection' /var/folders/xs/wmmjbz4s6mdgcqynwn46qtmr0000gn/T/799ac09c665c85beb20f6d99be27c1cf.browserify?c65c8d7afc187ee2ed8307a171bc8e1511bfb40b:91625:48)
.*
将匹配所有内容,包括颜色代码。
如果您不想匹配它们,请使用更具体的正则表达式,例如字符范围。
对于给定的示例,
/var/folders/xs/wmmjbz4s6mdgcqynwn46qtmr0000gn/T/799ac09c665c85beb20f6d99be27c1cf.browserify
更具体的模式可能是其中之一,使用字符 类:
sed 's|var[^[:cntrl:]]*browserify||'
sed 's|var[[:alnum:]./]*browserify||'
我会使用后者,因为它可以消除跳过完整路径名的可能性(如果在一行中给出了多个路径名)。