Как использовать vimdiff для сравнения первой 1000 строки двух очень больших файлов (скажем, a.txt и b.txt) - PullRequest
0 голосов
/ 13 марта 2020

Как видно из заголовка, 1000 строк стало слишком много, чтобы использовать diff, и поэтому vimdiff - лучший выбор. Моей первой мыслью было, что если vimdiff обеспечить это как встроенную функцию. Если нет, то обходить можно было бы объединить vimdiff и head в одну строку без создания двух буферных файлов.

1 Ответ

3 голосов
/ 13 марта 2020

Если вы используете bash, вы можете вызвать его как

$ vimdiff <(head -n 1000 "file1.txt") <(head -n 1000 "file2.txt")

(или gvimdiff). При этом используется bash подстановка процесса , чтобы взять временный именованный канал, содержащий выходные данные этих команд head, и сравнить их в vimdiff.

Имена этих каналов будут различаться в зависимости от вашей системы. В моей системе Linux они выглядят как /proc/123456/fd/11 и /proc/123456/fd/12 (где 123456 - это идентификатор процесса родительской оболочки bash). Обратите внимание, что они не будут разделять расширения ваших исходных файлов (и вы можете запутаться, какие именно; помните, что крайний левый был первым, а самый правый был последним - что я говорю, потому что вы также можете вставить третий). Рассмотрим команду типа vimdiff -c 'windo set syn=bash' <(head …) <(head …), чтобы, например, установить для них обоих формат подсветки bash.

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