Как отображать номера строк в бок о бок diff в unix?

Сценарий состоит в том, что у меня есть 2 файла, которые я хочу разделить бок о бок, используя следующую команду с номерами строк:

diff -y file1.txt file2.txt

и

sdiff file1.txt file2.txt

Вышеприведенная команда просто печатает бок о бок diff, но не отображает номера строк. Есть ли способ сделать это? Я много искал, но не мог найти решения. Я не могу использовать сторонние инструменты FYI. Любые идеи гения от кого-либо?

Update:

Я хочу, чтобы номера файлов присутствовали в самом файле, а не в номерах строк, сгенерированных с помощью конвейера, в cat -n и т.д. Давайте скажем, что я делаю diff, используя "--suppress-common-l ines", затем строку числа должны быть опущены, которые не показаны в diff.

Ответ 1

Ниже код может быть использован для отображения необычных полей в двух файлах, бок о бок.

sdiff -l file1 file2 | cat -n | grep -v -e '($'  

Ниже кода будут отображаться общие поля вместе с номерами строк в выходных данных.

diff -y file1 file2 | cat -n | grep -v -e '($'  

Ответ 2

sdiff -s <(cat -n file1.txt) <(cat -n file2.txt)

Это дает вам бок о бок вывод с номерами строк из исходных файлов.

Ответ 3

Следующая команда будет отображать бок о бок выход с добавлением номеров строк для file1.txt и удаленных идентичных строк.

sdiff -l file1.txt file2.txt | cat -n | grep -v -e '($'

Ответ 4

Существует также эта аккуратная труба:

diff -y <file1> <file2> ... | less -N

Это дает вам экземпляр less с параллельным файлом diff и нумерацией строк в начале каждой строки.

Ответ 5

У меня была та же проблема, и в конечном итоге я использовал графический инструмент (диффузный) под Fedora 28