Просто удалите ==94953==
в начале каждой строки перед сравнением результатов:
valgrind --leak-check=full./executable1 <inputfile 2>&1 | sed 's/^==[0-9]*== //' >output1
valgrind --leak-check=full./executable2 <inputfile 2>&1 | sed 's/^==[0-9]*== //' >output2
diff -u output1 output2
В качестве альтернативы, которая позволяет сохранять немодифицированный вывод и изменять его только при запуске diff
,
valgrind --leak-check=full./executable1 <inputfile >output1 2>&1
valgrind --leak-check=full./executable2 <inputfile >output2 2>&1
diff -u <( sed 's/^==[0-9]*== //' <output1 ) <( sed 's/^==[0-9]*== //' <output2 )
Если вам не нужно взаимодействовать с этой программой, вы можете exec
использовать ее и легко записывать выходные данные:
set output [exec some_program]
set macs [lmap line [split $output \n] {lindex [split $line] 1}]
Если программе требуется взаимодействие, немного сложнее зафиксировать вывод. Дайте мне знать.