Имеется несколько почти одинаковых текстовых файлов-списков. Требуется их сравнить и составить объединённый список, содержащий все пункты всех списков в том же порядке. Если пункт есть не во всех файлах, нужно добавить метку, в каких файлах он есть.
Пока обошёлся
diff -y -W 300 --left-column
с последующей обработкой sed-ом:
sed 's/^\(.*\)[ \t]*($/\1/'
sed 's/^\(.*\)[ \t]*<$/(file1) \1/'
sed 's/^[ \t]*>\t\(.*\)$/(file2) \1/'
sed 's/^\(.*\)[ \t]*|\t\(.*\)$/\1/'
и небольшой правкой руками. Повезло, что было очевидно, как распределятся различия.
Существуют ли более простые способы?
На всякий случай: здесь очень старая система, diff 2.8.7, датирован 2004 годом.