Как отобразить номера строк в 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)
Это дает вам параллельный вывод с номерами строк из источник файлы.