Talvez você possa fazer algo com muito cut
ting e grep
ping e tkdiff
, mas você pode usar um único script sed
para fazer o trabalho:
sed -n -e '3{:a' -e 'n;s/.* \([^|]*\)| *[0-9]*| *\([A-Z]*\).*/ /;H;ta}
G;s/^|[^|]*| *\([^|]*\)| *[0-9]*| *\([A-Z]*\).* \([A-Z]*\).*/ New: Old: /p' tests.new tests.old
A primeira linha coleta os novos resultados do teste no espaço de espera, a segunda linha varre as linhas dos testes antigos, compara o nome do teste com os do espaço de espera e imprime uma linha para uma correspondência.
Para obter uma explicação detalhada desse princípio, consulte esta resposta .
Por favor, note que para arquivos maiores de novos testes este script pode ficar lento por causa da expressão regular com referência de volta.