Сравните первые 20 строк двух файлов

Вы можете установить все, что захотите, но использование нескольких программ виртуализации может быть вредным (в зависимости от того, как они дозируют виртуализацию ). Они могут мешать друг другу, так как пытаются управлять специальным оборудованием.

Однако Wine не является программой виртуализации , так что все будет в порядке.

Можно ли одновременно запускать более одной системы vm -? (ссылки

2
13.03.2021, 12:56
1 ответ

Использование оболочки с подстановкой процессов (<(...)), например. bashилиzsh:

diff <( head -n 20 file1 ) <( head -n 20 file2 )

Этот запуск head -n 20для каждого файла позволяет получить первые 20 строк каждого файла в двух отдельных подстановках процессов. Каждая подстановка процесса будет расширена до пути к файлу , где вывод команды может быть прочитан из (эти файлы являются временными и удаляются позже ).

Затем вызывается утилита diffдля сравнения этих двух наборов данных.

Без замены процесса:

head -n 20 file1 >file1.short
head -n 20 file2 | diff file1.short -
rm -f file1.short

Это создает отдельный файл из 20 первых строк одного файла и использует его с diff, в то время как 20 первых строк других файлов считываются из стандартного ввода.

Вы можете использовать -cили -uили какую-либо другую опцию с diffв приведенных выше командах, чтобы получить формат различий по вашему выбору (см. руководство diff).


Если файлы сжаты, то вам придется распаковывать данные:

diff <( gzip -d -c <file1 | head -n 20 ) <( gzip -d -c <file2 | head -n 20 )

или, без замены процессов:

gzip -d -c <file1 | head -n 20 >file1.short
gzip -d -c <file2 | head -n 20 | diff file1.short -
rm -f file1.short
7
18.03.2021, 22:26

Теги

Похожие вопросы