Порівняння текстових файлів у linux

файлів
Сьогодні мене попросили порівняти заголовки невеликих абзаців у двох великих текстових файлах. Усі заголовки починалися зі зірочки, тож проблем не виникло. Але зовсім без проблем не цікаво і більше від нудьги, ніж для реального користування, захотілося знайти спосіб витягування заголовків з будь-якого тексту. На жаль 100% робочий спосіб не було знайдено, проте наприкінці статті буде цікаве рішення щодо перетворення подвійних і порожніх рядків в один порожній рядок.

Для початку найпростіший варіант, коли треба просто порівняти 2 текстові файли. Для цього є команда diff. Синтаксис наступний:

Набагато зручніше перенаправити виведення у файл із розширенням diff

текстових

Програма порівнює рядки і якщо в одному з файлів є рядок, якого немає в іншому, то ставиться знак «>» або «

Щоб отримати виведення рядків, які починаються з одного символу (в даному випадку це *), краще скористатися командою grep. Наприклад, якщо потрібно відправити у файл 1.txt усі рядки, які починаються з «*» у файлі file.txt, то для цього слід виконати

Що стосується витягування заголовків з тексту будь-якого формату, то тут нічого розумного не вийшло. Але ж не пропадати коду, нехай лежить тут:

До речі, цей код цілком впорався з порівнянням тих файлів, які мені були надіслані, проте з реальними книгами були проблеми.