Как отображать номера строк в бок о бок 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