Есть ли способ заставить команду diff
искать только различия от заданного диапазона строк (от строки до строки до строки до ) вместо всего файла ? Я испытываю затруднения, пытаясь найти разницу между двумя функциями JavaScript в двух файлах, которые не находятся в одной строке. Я мог бы скопировать диапазон строк в новый файл, сделать то же самое для другого файла, а затем сравнить их, но это было бы утомительно, особенно если в файлах много текста.
Я попытался использовать:
diff "code1.js" "code2.js" --suppress-common-lines | tee outputFile
, но он, очевидно, не показывает только диапазон линий, которые мне интересно сравнивать. Было бы также полезно, если бы я мог указать диапазон строк для поиска в одном файле и другой диапазон строк в другом файле.
diff <(sed -n 'S1,S2p' file1) <(sed -n 'S3,S4p' file2)
где
Пропуск строки 1-4:
diff <(sed -n '5,10p' file1) <(sed -n '5,10p' file2)
$ more file1
1
2
3
4
5
6
7
8
9
10
$ more file2
11
2
3
4
5
65
7
8
9
10
Результат
2c2
< 6
---
> 65
-> пропущена разница в строке 1.
Для этого может быть проще использовать инструмент для рабочего стола. Мелд отлично (тема на AU: https://askubuntu.com/a/2947/15811 ):
Мелд - визуальный diff и инструмент слияния, предназначенный для разработчиков. Meld поможет вам сравнить файлы, каталоги и проекты с управлением версиями. Он обеспечивает двух- и трехстороннее сравнение файлов и каталогов, а также поддерживает многие популярные системы контроля версий.
BLOCKQUOTE>