Как отобразить номера строк в side by side diff в unix?

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

diff -y file1.txt file2.txt

и

sdiff file1.txt file2.txt

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

обновление:

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

4 ответов


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

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

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

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

Вы можете здесь https://unix.stackexchange.com/questions/34874/diff-output-line-numbers для другой формат.


следующая команда отобразит параллельный вывод, добавленный номерами строк для file1.TXT и идентичные строки удалены.

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

есть также эта аккуратная труба comand:

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

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


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

Это дает вам параллельный вывод с номерами строк из источник файлы.